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