/'与'//'在除法中的区别是什么?
使用其中一个比另一个有什么好处吗?在Python 2中,它们似乎返回的结果是一样的:
>>> 6/3
2
>>> 6//3
2
16 个回答
39
这段代码实现了“向下取整除法”,无论你用什么类型的数据。比如说,1.0/2.0
计算出来是 0.5
,但是 1/2
、1//2
和 1.0//2.0
计算出来都是 0
。
想了解更多细节,可以查看 PEP 238: 改变除法运算符。
79
关于Python 2.x的说明:
为了更清楚地说明在Python 2.x中,/
这个符号既不是向下取整的除法,也不是精确除法。
当两个参与运算的数都是int
(整数)时,/
表示向下取整的除法;但如果其中一个参与运算的数是float
(浮点数),那么/
就表示精确除法。
784
在Python 3.x中,5 / 2
会返回2.5
,而5 // 2
会返回2
。前者是浮点数除法,后者是向下取整除法,有时也叫整数除法。
在Python 2.2或更高版本的2.x系列中,整数之间的除法没有区别,除非你使用from __future__ import division
,这样Python 2.x就会像3.x那样处理除法。
不管有没有这个未来导入,5.0 // 2
会返回2.0
,因为这是这个操作的向下取整结果。
你可以在这里找到详细的说明:PEP 238: 改变除法运算符。