Python 3中raw_input()和input()的区别是什么?
当前回答
在python3中,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 ()
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函数计算用户输入的值。
其他回答
Python 2:
Raw_input()获取用户输入的内容,并将其作为字符串传递回去。 Input()首先接受raw_input(),然后对其执行eval()。
主要的区别是input()需要一个语法正确的python语句,而raw_input()不需要。
Python 3:
Raw_input()被重命名为input(),所以现在input()返回准确的字符串。 旧的input()已被删除。
如果您想使用旧的input(),这意味着您需要将用户输入作为python语句求值,则必须使用eval(input())手动执行。
在Python 2中,raw_input()返回一个字符串,input()尝试将输入作为Python表达式运行。
由于获取字符串几乎总是你想要的,Python 3通过input()实现了这一点。正如Sven所说,如果你想要旧的行为,eval(input())是可行的。
如果你想确保你的代码使用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")
在python3中,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 ()
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函数计算用户输入的值。
区别在于raw_input()在Python 3中不存在。X,而input()是。实际上,旧的raw_input()已经被重命名为input(),旧的input()已经没有了,但是可以使用eval(input())轻松地模拟。(记住eval()是邪恶的。如果可能的话,尽量使用更安全的方式解析输入。)
推荐文章
- python中的assertEquals和assertEqual
- 如何保持Python打印不添加换行符或空格?
- 为什么Python的无穷散列中有π的数字?
- Python 3.7数据类中的类继承
- 如何在PyTorch中初始化权重?
- 计数唯一的值在一列熊猫数据框架像在Qlik?
- 使用Pandas将列转换为行
- 从matplotlib中的颜色映射中获取单个颜色
- jQuery的“输入”事件
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- django MultiValueDictKeyError错误,我如何处理它
- 如何在for循环期间修改列表条目?
- 我如何在Django中创建一个鼻涕虫?