Python 3中的`raw_input()`和`input()`有什么区别?

398 投票
6 回答
361171 浏览
提问于 2025-04-16 11:20

在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() 是有风险的。如果可能的话,尽量使用更安全的方法来处理你的输入。)

撰写回答