整数的最佳Python输入法

时间:2015-04-14 01:21:22

标签: python python-2.7

在python 2.7中,如果我们将一个整数作为输入,哪一个更快更有效,或者根本没有差别:

input()或int(raw_input())

1 个答案:

答案 0 :(得分:3)

来自the Python docs

  

<强>输入([提示])

     

相当于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更为可取。