我的老师要我使用反向循环而不是我现在正在使用的反向功能。我似乎无法得到一个有效的。
def palindrome():
myInput = input("Enter a Word: ")
word = myInput[::-1]
if myInput == word:
print("That is a palindrome")
return True
else:
print("That is not a palindrome")
return False
palindrome()
答案 0 :(得分:0)
你可以尝试下面的代码,但我真的建议你先自己尝试一下。 (因为,如果您能够编写递归调用,您也应该能够自己编写迭代调用。)
def reverse(text):
rev = ""
final = ""
for a in range(0,len(text)):
rev = text[len(text)-a-1]
final = final + rev
return final
答案 1 :(得分:0)
def palindrome():
string = input("Enter a Word: ")
for i,char in enumerate(string):
if char != string[-i-1]:
return False
return True
编辑以下评论:
enumerate()函数将一个计数器添加到一个iterable。
>>> string = "PARAM"
>>> for count, elem in enumerate(string):
... print count, elem
...
0 P
1 A
2 R
3 A
4 M
所以第
if char != string[-i-1]
行会尝试匹配前面的一个字符和结尾的一个字符。