简单python代码中的NameError

时间:2013-11-18 09:57:03

标签: python string undefined palindrome nameerror

这是一个简单的回文检查器。该代码适用于数字,但不适用于字符串。

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

2 个答案:

答案 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

的更多信息