回文的反向循环

Reverse loop for palindrome

我的老师要我使用反向循环而不是我现在正在使用的反向功能。我似乎无法找到一个有效的方法。

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()

您可以尝试下面的代码,但我真的建议您先自己尝试一下。 (因为,如果您能够编写递归调用,那么您也应该能够自己编写迭代调用。)

def reverse(text):
      rev = ""
      final = ""
      for a in range(0,len(text)):
            rev = text[len(text)-a-1]
            final = final + rev
return final
def palindrome():
    string = input("Enter a Word: ")
    for i,char in enumerate(string):
        if char != string[-i-1]:
            return False
    return True

针对以下评论进行了编辑:

the enumerate() function adds a counter to an iterable.

>>> string = "PARAM"
>>> for count, elem in enumerate(string):
...     print count, elem
... 
0 P 
1 A
2 R
3 A
4 M

so line if char != string[-i-1] will try to match one character from front and one character from end.