我是新手,正在尝试使这一难以置信的基本代码正常工作。当我运行代码并输入我的名字时,出现此错误,
Traceback (most recent call last):
File "/Users/dbrown/Desktop/Name", line 2, in <module>
name= input()
File "<string>", line 1, in <module>
NameError: name 'Daniel' is not defined
这是原始代码:
print ("Please enter your name.")
name= input()
print ("Hello," , name)
答案 0 :(得分:5)
问题是该代码是为Python 3编写的,但是您正在使用Python 2运行它。
在Python 2中,您需要使用404 Not Found
而不是raw_input
。
input
的Python 2版本是
相当于
input
。
(请参阅https://docs.python.org/2/library/functions.html#input。)
换句话说,您输入的任何内容都将被解释为Python代码。特别是,eval(raw_input(prompt))
之类的东西将被视为变量名。之所以抛出Daniel
是因为您的程序中没有定义NameError
变量。
答案 1 :(得分:2)
您正在编写Python版本2的代码,请考虑更改为Python 3。
在python2中,有两个控制台输入功能-raw_input()
和input()
。
raw_input()
用于读取整数,print ("Please enter your name.")
name = raw_input()
print ("Hello, " + name)
用于读取字符串。因此,在Python2下,以下工作有效:
{{1}}
在Python 3下,您的代码已经很好用了。
您的代码失败,因为Python2试图将“ Daniel”解释为python语句。
答案 2 :(得分:0)
这是因为python 2,raw_input
是python 3的input
,而python 2的input
是python 3的eval(input(...))
,所以基本上就像这里的Daniel
一样尝试访问该变量,但未定义,因此引发错误