在Python 2.7中划分。和3.3

时间:2014-01-23 18:54:25

标签: python python-2.7 python-3.3 division

如何在Python 2.7中分割两个数字并获得带小数的结果?

我不明白为什么会有差异:

Python 3中的

>>> 20/15
1.3333333333333333
Python 2中的

>>> 20/15
1

这实际上不是模数吗?

4 个答案:

答案 0 :(得分:99)

在python 2.7中,如果输入是整数,则/运算符是整数除法。

如果你想要浮点除法(这是我总是喜欢的),只需使用这个特殊的导入:

from __future__ import division

在此处查看:

>>> 7 / 2
3
>>> from __future__ import division
>>> 7 / 2
3.5
>>>

使用//实现整数除法,使用%

进行模数化
>>> 7 % 2
1
>>> 7 // 2
3
>>>

修改

user2357112所述,此导入必须在任何其他正常导入之前完成。

答案 1 :(得分:40)

在Python 3中,/是浮动分割

在Python 2中,/是整数除法(假设int输入)

在2 3中,//是整数除法

(要在Python 2中获得浮点除法,要求其中一个操作数为浮点数,可以是20.float(20)

答案 2 :(得分:14)

在Python 2.x中,确保float中至少有一个分区的操作数。您可以通过以下示例实现此目的的多种方式:

20. / 15
20 / float(15)

答案 3 :(得分:9)

“/”是python 2中的整数除法,因此它将舍入为整数。如果要返回小数,只需将其中一个输入的类型更改为float:

float(20)/15 #1.33333333