Python 为什么我的代码总是给出相同的结果,即“字符串不是回文”

Python 为什么我的代码总是给出相同的结果,即“字符串不是回文”,python,string,comparison,palindrome,Python,String,Comparison,Palindrome,我的代码总是给出相同的结果,即“字符串不是回文” 为什么会这样? 但字符串的反转工作正常 original = input('enter string: ') index = len(original) - 1 reverse_string =" " while index >= 0 : reverse_string += original[index] index = index - 1 print('reverse string:', reverse_string)

我的代码总是给出相同的结果,即“字符串不是回文” 为什么会这样? 但字符串的反转工作正常

original = input('enter string: ')
index = len(original) - 1
reverse_string =" "
while index >= 0 :
    reverse_string += original[index]
    index = index - 1

print('reverse string:', reverse_string)

if (reverse_string == original):
     print("it's a palindrome:")
else:
     print("it's not a palindrome:")
因为您的反向_字符串以空格开头,即:

您还可以将其缩短为:

original = input('enter string: ')
if (original == original[::-1]): # [::-1] Returns the string in reverse.
     print("it's a palindrome:")
else:
     print("it's not a palindrome:")
根据评论,如果您希望olinox14,也可以进一步缩短:

original = input('enter string: ')
print("It's {}a palindrome".format("not " * (original!= original[::-1])))
或者Matthias的可读性更强:

original = input('enter string: ')
print("It's{}a palindrome".format(' ' if original==original[::-1] else ' not '))
您正在初始化reverse_字符串,因为该字符串将始终有一个额外的空间,并且永远不会与原始字符串相等

但您可以将代码简化为:

反向字符串=.joinreversedoriginal

或:


reverse_string=original[::-1]

reverse_string=您正在使用额外的空间初始化字符串。reverse_string=以便在不使用空格的情况下实例化字符串检查回文字符串的另一种方法:original==original[:-1]。您甚至可以执行以下操作:print是回文:,original==original[:-1]True,我只是在匹配他的电流输出。我知道,那只是为了好玩。另外:printIt是{}回文。格式不是*原件!=original[::-1]这是一种创造性的使用字符串乘法的方法……我更喜欢可读性更强的打印。如果original==original[:-1],则为{}回文格式“”,否则为“否”
original = input('enter string: ')
print("It's{}a palindrome".format(' ' if original==original[::-1] else ' not '))