在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中, /是整数除法(假设intinput)

在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