`input`和`raw_input`之间的差异

`input`和`raw_input`之间的差异

在教程中,我读到input和之间存在差异raw_input。我发现他们在Python 3.0中改变了这些函数的行为。什么是新行为?

为什么在python控制台解释这个

x = input()

发送错误,但如果我把它放在file.py并运行它,它不会?


拉丁的传说
浏览 367回答 3
3回答

芜湖不芜

在python 2.x中,raw_input()返回一个字符串并input()在调用它的执行上下文中计算输入>>> x = input()"hello">>> y = input()x + " world">>> y'hello world'在python 3.x中,input已被废弃并且之前已知的功能raw_input是现在input。所以你必须手动调用,compile而不是eval你想要旧的功能。python2.x                    python3.xraw_input()   --------------> input()               input()  -------------------> eval(input())     在3.x中,上面的会话是这样的>>> x = eval(input())'hello'>>> y = eval(input())x + ' world'>>> y'hello world'>>> 所以你可能在解释器上遇到错误,因为你没有在你的输入中加上引号。这是必要的,因为它已被评估。你得到名称错误的地方?

MMMHUHU

input()vs raw_input()raw_input收集用户键入的字符并将其显示为字符串。input()不只是评估数字,而是将任何输入视为Python代码并尝试执行它。知识渊博但恶意的用户可以键入甚至可以删除文件的Python命令。坚持使用raw_input()并使用Python的内置转换函数将字符串转换为您需要的数据类型。输入(),也不是安全的用户错误!它期望一个有效的Python表达式作为输入; 如果输入语法无效,则会引发SyntaxError。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python