Python 3 中 `raw_input()` 和 `input()` 有什么区别?[重复]
- 2024-11-21 08:33:00
- admin 原创
- 10
问题描述:
raw_input()
Python 3 中和有什么区别input()
?
解决方案 1:
不同之处raw_input()
在于 Python 3.x 中不存在 ,而input()
存在。实际上,旧的raw_input()
已重命名为input()
,旧的input()
已消失,但可以使用 轻松模拟eval(input())
。(请记住eval()
是邪恶的。如果可能,请尝试使用更安全的方式解析您的输入。)
解决方案 2:
在 Python 2中,raw_input()
返回一个字符串,并input()
尝试将输入作为 Python 表达式运行。
由于获取字符串几乎总是您想要的,因此 Python 3 使用 来实现这一点input()
。正如 Sven 所说,如果您想要旧的行为,eval(input())
就可以。
解决方案 3:
Python 2:
raw_input()
准确获取用户输入的内容并将其作为字符串传回。input()
首先获取raw_input()
然后对其执行eval()
。
主要区别在于,input()
期望语法正确的 python 语句,而实际上raw_input()
却不正确。
Python 3:
raw_input()
已重命名为,input()
因此现在input()
返回精确的字符串。旧的
input()
已被删除。
如果您想使用旧的input()
,这意味着您需要将用户输入评估为 python 语句,则必须使用手动执行此操作eval(input())
。
解决方案 4:
在 Python 3 中,raw_input()
不存在 Sven 已经提到过的东西。
在 Python 2 中,该input()
函数会评估您的输入。
例子:
name = input("what is your name ?")
what is your name ?harsha
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = input("what is your name ?")
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
在上面的例子中,Python 2.x 尝试将 harsha 评估为变量而不是字符串。为了避免这种情况,我们可以在输入周围使用双引号,例如“harsha”:
>>> name = input("what is your name?")
what is your name?"harsha"
>>> print(name)
harsha
原始输入()
raw_input()` 函数不会进行评估,它只会读取您输入的内容。
例子:
name = raw_input("what is your name ?")
what is your name ?harsha
>>> name
'harsha'
例子:
name = eval(raw_input("what is your name?"))
what is your name?harsha
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
name = eval(raw_input("what is your name?"))
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
在上面的例子中,我只是尝试用eval
函数评估用户输入。
解决方案 5:
我想为大家为Python 2 用户提供的解释添加更多细节。raw_input()
,现在,您知道它会评估用户输入的任何数据作为字符串。这意味着 Python 甚至不会再次尝试理解输入的数据。它只会考虑输入的数据将是字符串,无论它是实际的字符串还是 int 还是其他什么。
另一方面,input()
尝试理解用户输入的数据。因此,类似输入helloworld
甚至会显示错误为“ helloworld is undefined
”。
总之,对于python 2,要输入字符串,您也需要像 ' helloworld
' 那样输入它,这是 python 中使用字符串的常见结构。
解决方案 6:
如果您想确保您的代码可以在 python2 和 python3 中运行,请input()
在脚本开头添加函数:
from sys import version_info
if version_info.major == 3:
pass
elif version_info.major == 2:
try:
input = raw_input
except NameError:
pass
else:
print ("Unknown python version - input function not safe")
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件