如果单词是回文,为什么不会返回 true?

我希望程序在该单词是回文时返回 true,否则返回 false。我还必须使用 for 循环来向后打印单词,所以我不想改变它。这是函数: ///


def isPalindrome(s):

    for i in s[::-1]:

        print(i) 

    if i == s:

        return True

    else:

        return False


print(isPalindrome('hannah'))

print(isPalindrome('ben'))

/// 这就是它打印的内容: ///


h

a

n

n

a

h

False

n

e

b

False

///


噜噜哒
浏览 83回答 1
1回答

隔江千里

当你的 for 循环到达最后一次迭代时:for i in s[::-1]:     print(i)的值i是单词 的第一个字母s。i因此,当您与进行比较时s,您不是将该单词与其反向版本进行比较,而是将该单词与其第一个字母进行比较。例如,对于“hannah”,您正在比较"hannah" == "h"对于“ben”,你正在比较"ben" == "b"这当然False在两种情况下都是如此。你想要做的是将这个词s与其相反的版本进行比较,即s == s[::-1]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python