NameError:使用input()时未定义名称“ Daniel”

时间:2018-09-24 01:39:17

标签: python

我是新手,正在尝试使这一难以置信的基本代码正常工作。当我运行代码并输入我的名字时,出现此错误,

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)

3 个答案:

答案 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一样尝试访问该变量,但未定义,因此引发错误