如何在Python 2.7中将用户输入转换为字符串

4
当我输入以下内容并运行程序后,填写我的名字并按回车键:username = str(input("Username:"))
password = str(input("Password:")) 我遇到了错误:NameError: name 'sarang' is not defined。我尝试过以下两种方法:
username = '"{}"'.format(input("Username:"))
password = '"{}"'.format(input("Password:")) 但是我仍然得到相同的错误。如何将输入转换为字符串并修复错误?请注意保留HTML标记。
3个回答

8
在Python 2.x中使用raw_input(),在Python 3.x中使用input()获取字符串。你有两个选择:通过Python 3.x运行代码或在代码中将input()更改为raw_input()。Python 2.x的input()将用户输入作为代码而不是数据进行评估。它在现有代码中查找名为sarang的变量,但未能找到,因此会抛出一个NameError。附带说明:你可以将以下内容添加到你的代码中,并调用input_func()代替input()。它将自动选择正确的输入方法,使你的代码在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)

查看 这个问题 以获取更多详细信息。


问题已经解决了,感谢您的帮助。 - sarang.g
@sarang.g 不客气,很高兴能帮到你! - jDo

0

你必须明确地使用raw_input(prompt),而不是只使用input(prompt)。因为你目前正在使用支持从用户接收输入的这种格式的Python 2.x。


0
在 Python 2 中,raw_input() 返回一个字符串,而 input() 则尝试将输入作为 Python 表达式运行。
由于获取字符串几乎总是您想要的,Python 3 使用 input() 实现了这一点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接