我希望程序在該單詞是回文時返回 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
提交
取消