在Python 2.7中的分支。 和3.3
我怎样才能在Python 2.7中分割两个数字,并得到小数的结果?
我不明白为什么有差异:
在Python 3中:
>>> 20/15 1.3333333333333333
在Python 2中:
>>> 20/15 1
这不是真的吗?
在Python 2.7中,如果input是整数,则/
运算符是整数除法。
如果你想浮动分割(这是我总是喜欢的),只需使用这个特殊的导入:
from __future__ import division
在这里看到:
>>> 3 / 2 1 >>> from __future__ import division >>> 3 / 2 1.5 >>>
整数除法使用//
来实现,并使用%
>>> 3 % 2 1 >>> 3 // 1 3 >>>
编辑
如user2357112
,此导入必须在任何其他正常导入之前完成。
在Python 3中, /
是浮点除法
在Python 2中, /
是整数除法(假设int
input)
在2 和 3中, //
是整数除法
(要在Python 2中进行浮点除法,要求任一操作数为浮点数,或者为20.
,或者为float(20)
)
在Python 2.x中,确保你的分区至less有一个操作数是float
。 您可以通过多种方式实现这一点,如以下示例:
20. / 15 20 / float(15)
“/”是在Python 2中的整数除法,所以它将四舍五入到一个整数。 如果你想返回一个小数,只要将其中一个input的types改为float:
float(20)/15 #1.33333333