我正在尝试编写一个代码来分析一个单词是否是回文。顺便说一句,回文是一个向后和向前读取相同的单词。例如“女士”或“中午”
这是一个尝试:
x = raw_input("please enter a word:\n")
L = len(x)
# this part returns the first letter of the word
def first(word):
return word[0]
# this part returns the last letter of the word
def last(word):
return word[-1]
def middle(word):
return word[1:-1]
def is_palindrome(word):
if L <= 2:
print 'enter a word with at least three letters'
elif first(word) != last(word):
print 'This word is not a palindrome'
else:
word = middle(word)
is_palindrome(word)
is_palindrome(x)
但是当执行时,我得到
IndexError: string index out of range
...line 7, in first return word[0]
“is_palindrome”的第一个分支完美运行。即当这个词不是回文时,我不会出错。像“noopn”执行没有错误,但错误在第二个分支
我已经多次使用此代码,但无法弄清楚“迭代部分”我有答案,但我还不想看它。我需要弄清楚两件事:1.一种使函数is_palindrome中的迭代正常工作的方法?2.最后退出程序的方法。
你们能指导我如何在不提供解决方案的情况下回答这些问题吗?
最后我应该把 print 语句放在哪里: print 'This word is a palindrome'
谢谢