整数除法在CPython 2.7和Spyder中给出不同的结果

时间:2014-05-15 08:27:22

标签: python python-2.7 integer division

我在Python中遇到了一个非常奇怪的案例。

在Spyder:

>>> 274/365
0.7506849315068493
>>> sys.version
'2.7.6 (default, Dec 20 2013, 14:08:04) [MSC v.1700 64 bit (AMD64)]'
>>> 

但是在命令行中它返回0.

>>> 274/365
0
>>> 274/365 * 1.0
0.0
>>> 274/365.0
0.7506849315068493

相同版本的Python。

有人能告诉我这里有什么问题吗?我是否需要在该计划之前提出其他一些选择?这真是令人作呕,因为如果我通过命令行调用它,我的代码会产生奇怪的结果。

2 个答案:

答案 0 :(得分:6)

Spyder在其控制台中执行from __future__ import division

这在https://code.google.com/p/spyderlib/issues/detail?id=1646进行了讨论 - 默认情况下会停用它以避免混淆。

答案 1 :(得分:4)

您可以使用不同版本的Python(在Spyder 3. *和命令行2. *),也可以在Spyder中自动导入您的控制台,包括

from __future__ import division

在Python 2.7的命令行上

>>> 4/3
1
>>> from __future__ import division
>>> 4/3
1.3333333333333333