如何在Python 2.7中除以两个数并得到带小数的结果?
我不明白为什么会有差异:
在Python 3中:
>>> 20/15
1.3333333333333333
在 Python 2 中:
>>> 20/15
1
这实际上不就是取模吗?
如何在Python 2.7中除以两个数并得到带小数的结果?
我不明白为什么会有差异:
在Python 3中:
>>> 20/15
1.3333333333333333
在 Python 2 中:
>>> 20/15
1
这实际上不就是取模吗?
/
运算符会执行整数除法。如果您想要浮点数除法(这是我始终偏爱的内容),只需使用此特殊的导入:
在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
所评论的那样,这个导入必须在任何其他常规导入之前完成。
future
语句必须出现在模块中的任何其他代码之前,特别是在非 future
导入之前。同时,import __future__
是行不通的。 - user2357112__future__
的方式。 - woozyking/
是整数除法,并且结果有小数部分,我会感到惊讶,而且 from __future__ import division
可能需要翻很多屏才能找到。 - dumbledad在Python 3中,/
代表浮点数除法。
在Python 2中,/
代表整数除法(假设输入为int
)。
在Python 2和Python 3中,//
代表整数除法。
(要在Python 2中获得浮点数除法,需要运算符之一是一个浮点数,如20.
或float(20)
)
float
。有多种方法可以实现这一点,如以下示例:
在Python 2.x中,确保至少有一个操作数为 float
。有多种方法可以实现这一点,如以下示例:
20. / 15
20 / float(15)
"/" 在 Python 2 中表示整数除法,因此结果将四舍五入为整数。如果你想返回小数,请将其中一个输入的类型更改为 float:
float(20)/15 #1.33333333
20 mod 15 == 5
。 - C.B.float(20)/float(15)
。 - dumbledad