62

我从基数排序中遇到了这个代码示例:

def getDigit(num, base, digit_num):
    # pulls the selected digit
    return (num // base ** digit_num) % base

Python中的作用是什么//

4

3 回答 3

74

//是楼层除法算子。它生成其操作数的商的底数,而不对整数操作数进行浮点舍入。这有时也称为整数除法,即使您可以将它与浮点数一起使用,因为/默认情况下使用整数除法来执行此操作。

在 Python 3 中,/即使两个操作数都是整数,普通除法运算符也会返回浮点值,因此地板除法需要不同的运算符。这与 Python 2 不同,在 Python 2 中,/如果两个操作数都是整数,则执行下除法;如果至少一个操作数是浮点值,则执行浮点除法。

//当决定 Python 3 应该具有这种新功能时,该运算符首次在 Python 2.2 中被引入以实现前向兼容性。连同通过from __future__ import division(也在 Python 2.2 中引入)启用 Python 3 行为的能力,这使您能够在 Python 2 中编写与 Python 3 兼容的代码。

于 2013-01-21T17:57:55.597 回答
9

你可以试试:

In []: 5/2
Out[]: 2

In []: 5.0/2
Out[]: 2.5

In []: 5.0//2
Out[]: 2.0

这应该是不言自明的。

(这是在 Python 2.7 中。)

于 2014-08-27T18:30:53.380 回答
-1

Python3 支持两种除法,浮点(/)和整数(//)。

浮点数:45/2 = 22.5

整数:45//2 = 22

于 2021-10-30T01:15:05.607 回答