Python 回文函数问题

Python 回文函数问题,python,Python,我正在编写一个函数来查看字符串是否是回文,但我的代码遇到了一个问题。它似乎为大多数字符串提供了正确答案,但并非所有字符串都是如此! 这是: def isPalindrome(string): for letter in string: if letter == string[(len(string)-1-string.index(letter))]: return True else: return Fals

我正在编写一个函数来查看字符串是否是回文,但我的代码遇到了一个问题。它似乎为大多数字符串提供了正确答案,但并非所有字符串都是如此! 这是:

def isPalindrome(string):
    for letter in string:
        if letter == string[(len(string)-1-string.index(letter))]:
            return True
        else:
            return False
怎么了?谢谢

使用字符串切片 字符串[开始:停止:步骤] 字符串[:-1] 从终点开始,一步一步地向起点移动。 换句话说,从最后一个索引开始对单词进行切片,然后移向第一个索引。 看见 这是解决问题的最好办法。 def回文字:str->bool: 返回单词==单词[:-1] 回文“围巾” >>>因为围巾而假!=压裂 回文“旋转器” >>>因为rotator==rotator,所以为True 关于您当前的实施 函数在第一个字母后停止,因为return语句立即停止函数并返回值。 有很多方法可以修复代码 将return更改为yield,这将返回一个新的值。 使用迭代生成器,然后将为每个字母显示True或False 如果项目为真,则结果为回文 这不是解决这个问题的有效方法。 def isPalindromestring: 对于字符串中的字母: 如果字母==string[lenstring-1-string.indexletter]: 屈服于真实 其他: 假屈服 测试=listisPalindrome'rotator' 打印测试 >>>[真的,真的,真的,真的,真的,真的,真的] printalltest==True >>>真的 测试=listisPalindrome“围巾” 打印测试 >>>[假,假,真,假,假] printalltest==True >>>假的
当前,如果整个单词不匹配,则返回true。仅当任何字母不匹配时返回False,并在循环结束时返回True

def isPalindrome(string):
    for letter in string:
        if not letter == string[(len(string)-1-string.index(letter))]:
             return False
    return True


欢迎来到堆栈溢出。它似乎为大多数字符串提供了正确答案,但并非所有字符串都是如此-你能举个例子吗?请阅读。你知道退货是什么吗?函数在返回前会查看多少个字母?