这是一个简单的回文检查器。该代码适用于数字,但不适用于字符串。
x = str(input("Enter a number: "))
if x == x[::-1]:
print x + " is a palindrome!"
else:
print x + " is not a palindrome!"
当我尝试输入字符串时,我收到此错误:
File "palindrome.py", line 1, in <module>
x = str(input("Enter a number: "))
File "<string>", line 1, in <module>
NameError: name 'abba' is not defined
答案 0 :(得分:5)
您似乎正在使用Python 2.x!
请使用raw_input
进行键盘输入。这总是返回一个字符串,因此不需要转换/转换。
在Python 2.x input
尝试评估输入为Python的文本,并且您从未定义过abba,因此它将导致NameError
有关详情,请参阅docs。
答案 1 :(得分:0)
你输入一些数字。例如,“输入一个数字:1221”。你可以得到
X = STR(1221)
这很严格。
但是,“输入一个数字:abba”。你可以得到
X = STR(ABBA)
这是错误的。因为“abba”不是字符串,并且没有定义。
您可以尝试“输入数字:'abba'”,或使用
raw_input('输入数字:')
替换输入(“输入数字:”) 你可以得到你想要的结果。
阅读有关here
的更多信息