我希望程序在该单词是回文时返回 true,否则返回 false。我还必须使用 for 循环来向后打印单词,所以我不想改变它。这是函数: ///def isPalindrome(s): for i in s[::-1]: print(i) if i == s: return True else: return Falseprint(isPalindrome('hannah'))print(isPalindrome('ben'))/// 这就是它打印的内容: ///hannahFalsenebFalse///
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
当你的 for 循环到达最后一次迭代时:
for i in s[::-1]: print(i)
的值i
是单词 的第一个字母s
。i
因此,当您与进行比较时s
,您不是将该单词与其反向版本进行比较,而是将该单词与其第一个字母进行比较。例如,对于“hannah”,您正在比较
"hannah" == "h"
对于“ben”,你正在比较
"ben" == "b"
这当然False
在两种情况下都是如此。
你想要做的是将这个词s
与其相反的版本进行比较,即
s == s[::-1]
添加回答
举报
0/150
提交
取消