未定义python d中的错误。

2024-05-12 16:45:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习python,并且有这个错误。我能找出代码中的错误所在。 File "<string>", line 1, in <module>

Name = ""
Desc = ""
Gender = ""
Race = ""
# Prompt user for user-defined information
Name = input('What is your Name? ')
Desc = input('Describe yourself: ')

当我运行程序时

it输出 你叫什么名字?(i输入d)

这就产生了错误

Traceback (most recent call last):
  File "/python/chargen.py", line 19, in <module>
    Name = input('What is your Name? ')
  File "<string>", line 1, in <module>
NameError: name 'd' is not defined

这是Python 3为绝对初学者编写的示例代码。


Tags: 代码nameininputyourstringis错误
3条回答

您可能正在使用Python 2.x,其中inputeval用户输入。仅在Python 3.x中input()返回原始用户输入。

您可以通过在控制台中运行python来检查Python的版本,例如这是Python 2.6:

~$ python
Python 2.6.5 (r265:79063, Apr  5 2010, 00:18:33) 
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

您可以通过python3.1运行特定版本的Python(例如3.1):

~$ python3.1
Python 3.1.1 (r311:74480, Jan 25 2010, 15:23:53) 
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

在Python 2.x中,input()需要一个Python表达式,这意味着如果您键入d,它会将其解释为一个名为d的变量。如果您键入"d",那么就可以了。

2.x实际上可能需要的是raw_input(),它将输入的值作为原始字符串返回,而不是对其求值。

既然你有这种行为,看起来你在使用一个2.x版本的Python解释器-相反,我会去www.python.org下载一个Python 3.x解释器,这样它就会与你正在使用的书匹配。

在Python 3.0及更高版本中,您正在使用的这本书教导,input()做了Python 2中的raw_input()所做的事情,因此在这种情况下,代码是正确的;但是,看起来您使用的是较旧版本的Python(2.6?)。

我建议您去Python website下载最新版本的Python 3,这样您就可以更轻松地阅读本书了。


考虑到您使用的是Python2,当前的问题是您使用的是input(),它计算您给出的任何结果。您要做的是获取用户输入的原始字符串:

Name = raw_input("What is your Name? ")

Python 3.x和2.x之间的差别很小,所以如果您想继续为绝对初学者使用python3,一定要使用最新的python3。

相关问题 更多 >