Python 3中的`raw_input()`和`input()`有什么区别?
在Python 3中,raw_input()
和input()
有什么区别呢?
6 个回答
125
Python 2:
raw_input()
会把用户输入的内容原封不动地作为字符串返回。input()
首先会调用raw_input()
,然后对得到的内容进行eval()
处理。
主要的区别在于,input()
需要输入的内容是一个正确的 Python 语法,而 raw_input()
则不需要。
Python 3:
raw_input()
被改名为input()
,所以现在的input()
返回的就是用户输入的字符串。- 以前的
input()
被删除了。
如果你想使用以前的 input()
,也就是需要把用户输入当作 Python 语句来处理,你需要手动使用 eval(input())
来实现。
199
在Python 2中,raw_input()
这个函数会返回一个字符串,而input()
则会尝试把你输入的内容当作Python表达式来执行。
因为大多数情况下我们其实只是想要一个字符串,所以在Python 3中,input()
直接就返回字符串了。如果你想要以前那种行为,可以用eval(input())
来实现。
452
区别在于,raw_input()
在 Python 3.x 中不存在,而 input()
是有的。实际上,之前的 raw_input()
被改名为 input()
,而原来的 input()
则不再使用。不过,我们可以通过 eval(input())
来模拟旧的功能。(记住,eval()
是有风险的。如果可能的话,尽量使用更安全的方法来处理你的输入。)