在python 2.7中,如果我们将一个整数作为输入,哪一个更快更有效,或者根本没有差别:
input()或int(raw_input())
答案 0 :(得分:3)
<强>输入([提示])强>
相当于eval(raw_input(prompt))。
此功能不会捕获用户错误。如果输入语法无效,则会引发SyntaxError。如果在评估过程中出现错误,可能会引发其他异常。
如果加载了readline模块,则input()将使用它来提供精细的行编辑和历史记录功能。
考虑将raw_input()函数用于用户的一般输入。
int(raw_input())
会更快,更安全,并且会产生更少混乱的结果。
考虑:
>>> b = 5
>>> a = input()
[1, 2, 3]
>>> a + b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
>>> a = int(raw_input())
[1, 2, 3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '[1, 2, 3]'
在阅读输入时引发的ValueError
比使用变量时引发的TypeError
更为可取。