“/”和“//”用于除法时有什么区别?

2024-03-29 12:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

一个比一个有用吗?在Python 2中,它们似乎都返回相同的结果:

>>> 6/3
2
>>> 6//3
2

3条回答

这有助于澄清Python 2.x行,/既不是floor除法,也不是真正的除法。目前接受的答案对此并不清楚。/当两个参数都是int时是floor division,但当其中一个或两个参数都是float时是true division。

以上所说的比公认答案中的第二段要清楚得多。

在Python 3.0中,5 / 2将返回2.55 // 2将返回2。前者是浮点除法,后者是floor除法,有时也称整数除法。

在Python 2.2或更高版本的2.x行中,整数没有区别,除非执行from __future__ import division,这会导致python2.x采用3.0的行为

不管将来的导入如何,5.0 // 2都将返回2.0,因为这是操作的楼层划分结果。

您可以在https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator找到详细说明

//实现“floor division”,而不考虑类型。所以 1.0/2.0将给出0.5,但是1/21//21.0//2.0都将给出0

详见https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator

相关问题 更多 >