为什么 Python 回文失败

Why Python Palindrome fail

import sys

for line in sys.stdin:
    if line == line[::-1]:
        print('true')
    else :
        print('false')    

我输入阿巴

但得到了假

我打印出行[::-1]是'abba'

为什么结果是假的?

当您使用 stdin 输入代码时,字符串有一个转义字符 \n,表示换行。最好使用输入语句。如果你想保持这样,这里是你如何修复它。

for line in sys.stdin:
line = line.strip()
if line == line[::-1]:
    print('True')
else:
    print('False')

基本上是空格并且 \n 与您的字符串变量连接,这就是它不匹配的原因,请使用 line.strip() 函数,此函数将删除字符串中的所有空格。 导入系统

for line in sys.stdin:
    line = line.strip()
    if line == line[::-1]:
        print('true')
    else :
        print('false')