python教程中的Traceback NameError

时间:2012-10-24 20:21:58

标签: python

我正在阅读here的在线python教程书。代码如下所示。当我执行代码时,我可以在其中输入单词,但之后它给了我下面的错误。代码有什么问题?

在相关的说明中,如果你有更好的资源来学习python,请告诉我。我正在寻找一个在线和经常更新的(ex:railstutorial.org)。我正在使用的资源即使在本书的早期也有很多错误。感谢。

Enter something : programmig is fun
Traceback (most recent call last):
  File "break.py", line 5, in <module>
    s = input('Enter something : ')
  File "<string>", line 1, in <module>
NameError: name 'programmig' is not defined

#!/usr/bin/python
# Filename: break.py

while True:
    s = input('Enter something : ')
    if s == 'quit':
        break
    print('Length of the string is', len(s))
print('Done')

2 个答案:

答案 0 :(得分:2)

这是python 3代码。好像你用python 2运行它。

运行python --version以检查您正在使用的python版本。

答案 1 :(得分:1)

input()没有获得字符串,因此它认为programmig是一个变量。您可以在引号中键入所需的输入来解决此问题 然而,更好的方法是使用raw_input,它返回一个字符串 因此,Enter something : 'programmig is fun',不推荐,或s = raw_input('Enter something : ') 推荐方式

混淆的原因是本书可能适用于python 3,它有不同的input,也有不同的print,而你使用的是python 2.x。