Python 编写检查字符串是否为回文的函数

Python 编写检查字符串是否为回文的函数,python,Python,我需要编写一个函数来确定给定的字符串是否是回文。以下是我到目前为止写的内容: def isPalindrome(string): found = False for i in range(len(string)): if string[i] == string[len(string) - 1 - i]: found = True if found == True: print("Inserted string is

我需要编写一个函数来确定给定的字符串是否是回文。以下是我到目前为止写的内容:

def isPalindrome(string):
    found = False
    for i in range(len(string)):
        if string[i] == string[len(string) - 1 - i]:
            found = True

    if found == True:
        print("Inserted string is a palindrome. ")
    else:
        print("Inserted string is not a palindrome. ")

    return

我对字符串进行迭代,并检查向前和向后迭代是否给出相等的字符。但如果我通过执行isAlindrome(“hello”)来应用这个程序,它会说这是一个回文。它没有给我正确的输出。请有人指出我犯的任何错误,以便我可以从中吸取教训。

当您找到任何与“镜像”字符相等的字符时,您将
found
设置为true。例如,对于一个字符数为奇数的单词,这总是正确的(中间字符等于中间字符),但其他单词也会生成错误匹配。以单词
winner
为例,其中的两个
n
s处于镜像位置,您的函数将宣布它为回文,而显然它不是

如果发现不匹配,请提前退出,而不是将
found
设置为true:

所以你开始假设它是一个回文,当你发现相反的证据时,你就退出

请注意,在检查了一半字符串后,可以停止检查:

for i in range((len(string) + 1) // 2):
    if string[i] != string[len(string) - 1 - i]:
        found = False
        break
或者您可以测试字符串是否等于其反面;
[::-1]
为您提供反向字符串:

string == string[::-1]

检查字母是否不匹配。一旦发生这种情况,就断定它不是回文。如果有任何镜像字符对匹配,则将“发现”设置为True。相反,您希望所有镜像对都匹配。因此,将其初始化为True,然后在循环中,如果它们不匹配,则将其设置为False。谢谢。这是非常清楚的。
string == string[::-1]