/'与'//'在除法中的区别是什么?

588 投票
16 回答
721354 浏览
提问于 2025-04-11 09:26

使用其中一个比另一个有什么好处吗?在Python 2中,它们似乎返回的结果是一样的:

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

16 个回答

39

这段代码实现了“向下取整除法”,无论你用什么类型的数据。比如说,1.0/2.0 计算出来是 0.5,但是 1/21//21.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: 改变除法运算符

撰写回答