这个问题在这里已有答案:
当我进入
username = str(input("Username:"))
password = str(input("Password:"))
运行程序后,我用我的名字输入输入并按回车键
username = sarang
我收到了错误
NameError: name 'sarang' is not defined
我试过了
username = '"{}"'.format(input("Username:"))
和
password = '"{}"'.format(input("Password:"))
但我最终得到了同样的错误。
如何将输入转换为字符串并修复错误?
使用Python 2.x中的raw_input()
和Python 3.x中的input()
来获取字符串。
您有两种选择:通过Python 3.x运行代码或在代码中将input()
更改为raw_input()
。
Python 2.x input()
将用户输入评估为代码,而不是数据。它会在现有代码中查找名为sarang
的变量,但无法找到它;因此投掷了NameError
。
附注:您可以将其添加到您的代码中,然后调用input_func()
。它将自动选择正确的输入方法,因此您的代码在Python 2.x和3.x中的工作方式相同:
input_func = None
try:
input_func = raw_input
except NameError:
input_func = input
# test it
username = input_func("Username:")
print(username)
查看this question了解更多详情。
您必须显式使用raw_input(提示),而不是仅使用输入(提示)。因为您当前正在使用Python 2.x,它支持这种格式化以接收来自用户的输入。
在Python 2中,raw_input()
返回一个字符串,input()
尝试将输入作为Python表达式运行。
由于获取字符串几乎总是你想要的,Python 3使用input()
做到了。