3 回答
TA贡献1796条经验 获得超7个赞
在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.x
raw_input() --------------> input()
input() -------------------> eval(input())
在3.x中,上面的会话是这样的
>>> x = eval(input())
'hello'
>>> y = eval(input())
x + ' world'
>>> y
'hello world'
>>>
所以你可能在解释器上遇到错误,因为你没有在你的输入中加上引号。这是必要的,因为它已被评估。你得到名称错误的地方?
TA贡献1834条经验 获得超8个赞
input()vs raw_input()
raw_input收集用户键入的字符并将其显示为字符串。input()不只是评估数字,而是将任何输入视为Python代码并尝试执行它。知识渊博但恶意的用户可以键入甚至可以删除文件的Python命令。坚持使用raw_input()并使用Python的内置转换函数将字符串转换为您需要的数据类型。
输入(),也不是安全的用户错误!它期望一个有效的Python表达式作为输入; 如果输入语法无效,则会引发SyntaxError。
添加回答
举报