Python用户输入评估错误
您好,我是python编程新手,我曾试图整理一个小片段来了解工作原理,但我想我的代码可能有问题:Python用户输入评估错误,python,Python,您好,我是python编程新手,我曾试图整理一个小片段来了解工作原理,但我想我的代码可能有问题: users = [] while True: new_user = input("Enter a user") if new_user == 'quit': break else: users.append(new_user) for user in users: print(user) 我得到的错误如下: Traceback (m
users = []
while True:
new_user = input("Enter a user")
if new_user == 'quit':
break
else:
users.append(new_user)
for user in users:
print(user)
我得到的错误如下:
Traceback (most recent call last):
File "/home/mark/workspace/Gest/launcher.py", line 4, in <module>
new_user = input("Enter a user")
File "/root/.p2/pool/plugins/org.python.pydev_4.3.0.201508182223/pysrc/pydev_sitecustomize/sitecustomize.py", line 141, in input
return eval(raw_input(prompt))
File "<string>", line 1, in <module>
NameError: name 'david' is not defined
回溯(最近一次呼叫最后一次):
文件“/home/mark/workspace/Gest/launcher.py”,第4行,在
新建用户=输入(“输入用户”)
文件“/root/.p2/pool/plugins/org.python.pydev_4.3.0.201508182223/pysrc/pydev_sitecustomize/sitecustomize.py”,第141行,输入
返回评估(原始输入(提示))
文件“”,第1行,在
NameError:未定义名称“david”
通过检查代码,您似乎在使用Python 2.x,在2.x中,input()
实际上用于评估用户的输入,因此您必须使用raw\u input()
从用户获取输入,请记住raw\u input()
始终返回字符串
users = []
while True:
new_user = raw_input("Enter a user")
if new_user == 'quit':
break
else:
users.append(new_user)
for user in users:
print(user)
您需要使用
raw\u input()
而不是input()
。正常的input()
函数使用python代码,而raw\u input()
使用户输入一个字符串。另外,我是否可以建议在提示中添加更多的填充,使其更具可读性
users = []
while True:
new_user = raw_input("Enter a user: ")
if new_user == 'quit':
break
else:
users.append(new_user)
for user in users:
print(user)
您的代码适用于Python 3,但不适用于Python 2。在Python2中,响应输入
函数而输入的文本作为Python代码计算,因此未定义关于david
的错误
raw_input
是您在Python2上想要的
见:
以及:
如果切换到Python3,代码是正确的,因为Python3中的input
相当于Python2中的raw\u input
有关输入的Python 3文档,请参见使用原始输入()
,假设您使用的是Python 2.x
。看起来是Python 2.x,但是最好使用打印用户
而不是打印(用户)
。