python教程中的回溯名称错误

python教程中的回溯名称错误,python,Python,我正在读一本来自微软的在线python教程。代码如下所示。当我执行代码时,我可以在代码中键入单词,但是它给了我下面的错误。代码有什么问题 另一方面,如果您有更好的python学习资源,请告诉我。我正在寻找一个是在线和经常更新(例如:railstutorial.org)。即使在书的早期,我使用的资源也有很多错误。谢谢 Enter something : programmig is fun Traceback (most recent call last): File "break.py", l

我正在读一本来自微软的在线python教程。代码如下所示。当我执行代码时,我可以在代码中键入单词,但是它给了我下面的错误。代码有什么问题

另一方面,如果您有更好的python学习资源,请告诉我。我正在寻找一个是在线和经常更新(例如: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')
输入内容:编程很有趣
回溯(最近一次呼叫最后一次):
文件“break.py”,第5行,在
s=输入('输入某物:')
文件“”,第1行,在
名称错误:未定义名称“programmig”
#!/usr/bin/python
#文件名:break.py
尽管如此:
s=输入('输入某物:')
如果s==‘退出’:
打破
打印('字符串长度为',len(s))
打印(‘完成’)

这是python 3代码。看起来您正在使用python 2运行它


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

这是python3代码。看起来您正在使用python 2运行它

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

input()
没有获取字符串,因此它认为
programmig
是一个变量。您可以在引号中键入所需的输入来解决此问题。
但是,更好的方法是使用
raw\u input
,它返回一个字符串。
因此,要么输入内容:“programmig很有趣”,不推荐,要么输入内容(“输入内容”)推荐方式

造成混淆的原因是,这本书可能是针对Python3的,当您使用Python2.x时,Python3具有不同的
输入
,也具有不同的
打印

input()
没有获取字符串,因此它认为
programmig
是一个变量。您可以在引号中键入所需的输入来解决此问题。
但是,更好的方法是使用
raw\u input
,它返回一个字符串。
因此,要么输入内容:“programmig很有趣”,不推荐,要么输入内容(“输入内容”)推荐方式


造成混淆的原因是这本书可能是针对Python3的,当您使用Python2.x时,Python3有不同的
输入
,也有不同的
打印

这对Python2是正确的,但从函数
打印
判断,这就是Python3。@Matthewams,所以他可能在运行Python2.x的同时还有一个Python3的tut。我敢打赌这就是正在发生的事情。Python2也是这样,但从函数
print
判断,这就是Python3。@Matthewams,所以他可能在运行Python2.x的同时有一个Python3 tut。我敢打赌这就是发生的事情。我有Python2.7.2,这很令人伤心,因为书中明确地说他在使用Python2.7.2。实际上,他说他在使用Python3,然后切换,现在他有了Python2和3的混合代码。我可以说这是3,因为:
print
是一个函数,
input
应该像旧的
raw\u input
一样工作。此外,它的运行方式与您在python 3中所期望的一样。我有python 2.7.2,这很遗憾,因为书中明确地说他在使用python 2.7.2。实际上,他说他在使用python 3,然后切换,现在他混合了python 2和3代码。我可以说这是3,因为:
print
是一个函数,
input
应该像旧的
raw\u input
一样工作。此外,它的运行方式与您在Python3中所期望的一样。