使用一个比另一个有好处吗?在Python 2中,它们似乎都返回相同的结果:
>>> 6/3 2 >>> 6//3 2
Eli Courtwri.. 591
在Python 3.0,5 / 2
将返回2.5
并5 // 2
返回2
.前者是浮点除法,后者是浮点除法,有时也称为整数除法.
在2.x行的Python 2.2或更高版本中,除非执行a from __future__ import division
,否则整数没有区别,这会导致Python 2.x采用3.0的行为
无论将来进口,5.0 // 2
都将返回,2.0
因为这是操作的分区结果.
您可以在https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator找到详细说明.
在Python 3.0,5 / 2
将返回2.5
并5 // 2
返回2
.前者是浮点除法,后者是浮点除法,有时也称为整数除法.
在2.x行的Python 2.2或更高版本中,除非执行a from __future__ import division
,否则整数没有区别,这会导致Python 2.x采用3.0的行为
无论将来进口,5.0 // 2
都将返回,2.0
因为这是操作的分区结果.
您可以在https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator找到详细说明.
它有助于澄清Python 2.x系列,/
既不是底线分区也不是真正的分区.目前接受的答案尚不清楚./
当两个args都是int时,它是floor division,但当args中的任何一个或两个都是float时,它是真正的除法.
上面说明了更多的事实,并且比接受的答案中的第2段更清晰.
//
无论您的类型如何,都实施"地板划分".所以
1.0/2.0
会给0.5
,但两者1/2
,1//2
并且1.0//2.0
会给0
.
有关详细信息,请参阅https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator
/ - >浮点除法
// - >分区
让我们看一下python 2.7和Python 3.5中的一些例子.
Python 2.7.10与Python 3.5
print (2/3) ----> 0 Python 2.7 print (2/3) ----> 0.6666666666666666 Python 3.5
Python 2.7.10与Python 3.5
print (4/2) ----> 2 Python 2.7 print (4/2) ----> 2.0 Python 3.5
现在,如果你想(在python 2.7中)与python 3.5中的输出相同,你可以执行以下操作:
Python 2.7.10
from __future__ import division print (2/3) ----> 0.6666666666666666 #Python 2.7 print (4/2) ----> 2.0 #Python 2.7
在python 2.7和Python 3.5中,Floor division之间没有区别
138.93//3 ---> 46.0 #Python 2.7 138.93//3 ---> 46.0 #Python 3.5 4//3 ---> 1 #Python 2.7 4//3 ---> 1 #Python 3.5
正如大家已经回答的那样,//
是分区.
为什么这很重要的是//
,在2.2的所有Python版本中,包括Python 3.x版本,都是明确的分区.
/
可以改变的行为取决于:
是否有主动__future__
导入(模块本地)
Python命令行选项,-Q old
或者-Q new
>>> print 5.0 / 2 2.5 >>> print 5.0 // 2 2.0
**
Python 2.7和其他即将推出的python版本:
** / Division 用右手操作数ex :: 4/2 = 2除左手操作数
Floor Division(//) - 操作数的除法,其中结果是删除小数点后的数字的商.但是如果其中一个操作数是负数,则结果是浮动的,即从零(向负无穷大)舍入:示例:9 // 2 = 4和9.0 // 2.0 = 4.0,-11 // 3 = -4 ,-11.0 // 3 = -4.0
/ Division和// floor division运营商都以类似的方式运营