2

我尝试编写我的第一个 python 程序,但我已经收到一条错误消息。在使用 python 进行计算机科学的教科书介绍中,我发现了以下代码:

name = input('What is your name? ')
print('Hello', name)
print('Welcome to Python!')

我多次检查错误,我很确定我输入的内容与教科书状态完全一样。我将程序保存为 MyFirstProgram.py,然后运行模块(按 F5)。如果我理解正确,程序会要求您填写姓名。所以我输入了“约翰”。但是当我这样做时,会发生以下错误:

Traceback (most recent call last):
  File "C:/Users/Wout/.ipython/MyFirstProgram.py", line 3, in <module>
    name = input('What is your name? ')
  File "<string>", line 1, in <module>
NameError: name 'John' is not defined

为什么没有定义“约翰”?输入任何名称不是程序的目的吗?为什么我必须定义它?我按照信上的指示...

亲切的问候

4

4 回答 4

2

input,在 Python 2 中,评估输入就像它是一段 Python 代码一样。这几乎不是你想要的。改为使用raw_input

顺便说一句,您正在编写代码,就好像它是 Python 3,但您似乎正在使用 Python 2 解释器。如果您使用 Python 3 运行代码,它将正常工作(input在 Python 3 中与raw_input在 Python 2 中相同)。

于 2013-09-30T17:41:30.523 回答
1

您应该使用raw_input()而不是 an input(),因为您使用的是 python-2.x:

name = raw_input('What is your name? ')
print('Hello', name)
print('Welcome to Python!')

印刷:

What is your name? John
('Hello', 'John')
Welcome to Python!
于 2013-09-30T17:41:45.237 回答
0

'John'将与inputJohn将不起作用)一起使用,但是您应该raw_input()像其他人说的那样使用

于 2013-09-30T17:46:45.653 回答
0

您正在遵循 Python 3 的教科书,但使用的是 Python 2。在 Python 2 中,raw_input打印语句上必须使用且不需要括号。

于 2013-09-30T17:42:25.590 回答