我希望程序在該單詞是回文時(shí)返回 true,否則返回 false。我還必須使用 for 循環(huán)來(lái)向后打印單詞,所以我不想改變它。這是函數(shù): ///def isPalindrome(s): for i in s[::-1]: print(i) if i == s: return True else: return Falseprint(isPalindrome('hannah'))print(isPalindrome('ben'))/// 這就是它打印的內(nèi)容: ///hannahFalsenebFalse///
1 回答

隔江千里
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
當(dāng)你的 for 循環(huán)到達(dá)最后一次迭代時(shí):
for i in s[::-1]: print(i)
的值i
是單詞 的第一個(gè)字母s
。i
因此,當(dāng)您與進(jìn)行比較時(shí)s
,您不是將該單詞與其反向版本進(jìn)行比較,而是將該單詞與其第一個(gè)字母進(jìn)行比較。例如,對(duì)于“hannah”,您正在比較
"hannah" == "h"
對(duì)于“ben”,你正在比較
"ben" == "b"
這當(dāng)然False
在兩種情況下都是如此。
你想要做的是將這個(gè)詞s
與其相反的版本進(jìn)行比較,即
s == s[::-1]
添加回答
舉報(bào)
0/150
提交
取消