如何在python 2.7中将用户输入转换为字符串[重复]

问题描述 投票:3回答:3

这个问题在这里已有答案:

当我进入

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 string python-2.7 user-input nameerror
3个回答
7
投票

使用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了解更多详情。


0
投票

您必须显式使用raw_input(提示),而不是仅使用输入(提示)。因为您当前正在使用Python 2.x,它支持这种格式化以接收来自用户的输入。


0
投票

在Python 2中,raw_input()返回一个字符串,input()尝试将输入作为Python表达式运行。

由于获取字符串几乎总是你想要的,Python 3使用input()做到了。

© www.soinside.com 2019 - 2024. All rights reserved.