【问题标题】:NameError in simple python code简单python代码中的NameError
【发布时间】:2013-11-18 09:57:02
【问题描述】:

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

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

【问题讨论】:

    标签: python string undefined palindrome nameerror


    【解决方案1】:

    看来您使用的是 Python 2.x!

    请使用raw_input 进行键盘输入。这总是返回一个字符串,所以不需要转换/转换。

    在 Python 2.x 中,input 尝试评估输入为 Python 的文本,而您从未定义过 abba,因此会导致 NameError

    请参阅docs 了解更多信息。

    【讨论】:

    • 并且str()可以被删除; raw_input() 总是返回一个字符串。
    【解决方案2】:

    在你输入一些数字的地方。例如,“输入一个数字:1221”。你可以得到

    x=str(1221)

    这是正确的。

    但是,“输入一个数字:abba”。你可以得到

    x=str(abba)

    错了。因为“abba”不是字符串,也没有定义。

    你可以试试“输入一个数字:'abba'”,或者使用

    raw_input('输入一个数字:')

    replace input("请输入一个数字:") 你可以得到你想要的结果。

    阅读更多关于here的信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 2018-05-03
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多