我尝试编写我的第一个python程序,但我已收到错误消息。在使用python的计算机科学教科书中,我发现了以下代码:
name = input('What is your name? ')
print('Hello', name)
print('Welcome to Python!')
我多次检查错误,我很确定我输入的内容与教科书状态完全相同。我将程序保存为MyFirstProgram.py,然后运行模块(按F5)。如果我理解正确,程序会要求您填写姓名。所以我键入了'John'。但是当我这样做时,会发生以下错误:
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
为什么'约翰'没有定义?这个程序的目的不是输入任何名字吗?为什么我要定义它?我按照指示写信......
亲切的问候
答案 0 :(得分:2)
input
将输入评估为一段Python代码。这几乎不是你想要的。请改用raw_input
。
顺便说一句,您编写的代码就像是Python 3一样,但您似乎正在使用Python 2解释器。如果您使用Python 3运行代码,它将正常工作(Python 3中的input
与Python 2中的raw_input
相同。
答案 1 :(得分:1)
您应该使用raw_input()而不是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!
答案 2 :(得分:0)
您正在关注Python 3的教科书但使用Python 2.在Python 2中,必须使用raw_input
并且在打印语句中不需要括号。
答案 3 :(得分:0)
'John'
将与input
一起使用(John
无效),但您应该像其他人一样使用raw_input()