`input` 和 `raw_input` 之间的区别 [重复]
- 2025-02-14 09:49:00
- admin 原创
- 57
问题描述:
input
在一篇教程中,我读到和之间存在差异raw_input
。我发现他们在 Python 3.0 中改变了这些函数的行为。新的行为是什么?
为什么在 Python 控制台解释器中会出现这种情况
x = input()
发送错误,但如果我将其放入 file.py 并运行它,它不会发送错误?
解决方案 1:
在 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'
>>>
因此,您可能在解释器中遇到错误,因为您没有在输入内容周围添加引号。这是必要的,因为它会被评估。您在哪里遇到名称错误?
解决方案 2:
input() 与 raw_input()
raw_input 收集用户输入的字符并将其显示为字符串。input() 不只是评估数字,而是将任何输入视为 Python 代码并尝试执行它。知识渊博但心怀恶意的用户可能会输入 Python 命令,甚至可以删除文件。坚持使用 raw_input() 并使用 Python 的内置转换函数将字符串转换为所需的数据类型。
此外,input() 也不能避免用户错误!它要求输入一个有效的 Python 表达式;如果输入的语法无效,则会引发 SyntaxError。
解决方案 3:
很简单:
raw_input()
返回字符串值同时
input()
返回整数值
例如:
1.
x = raw_input("Enter some value = ")
print x
输出:
Enter some value = 123
'123'
2.
y = input("Enter some value = ")
print y
输出:
Enter some value = 123
123
因此如果我们执行x + x =
它将输出为 123123
如果我们执行y + y =
它将输出为 246
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD