我从基数排序中遇到了这个代码示例:
def getDigit(num, base, digit_num):
# pulls the selected digit
return (num // base ** digit_num) % base
Python中的作用是什么//
?
我从基数排序中遇到了这个代码示例:
def getDigit(num, base, digit_num):
# pulls the selected digit
return (num // base ** digit_num) % base
Python中的作用是什么//
?
//
是楼层除法算子。它生成其操作数的商的底数,而不对整数操作数进行浮点舍入。这有时也称为整数除法,即使您可以将它与浮点数一起使用,因为/
默认情况下使用整数除法来执行此操作。
在 Python 3 中,/
即使两个操作数都是整数,普通除法运算符也会返回浮点值,因此地板除法需要不同的运算符。这与 Python 2 不同,在 Python 2 中,/
如果两个操作数都是整数,则执行下除法;如果至少一个操作数是浮点值,则执行浮点除法。
//
当决定 Python 3 应该具有这种新功能时,该运算符首次在 Python 2.2 中被引入以实现前向兼容性。连同通过from __future__ import division
(也在 Python 2.2 中引入)启用 Python 3 行为的能力,这使您能够在 Python 2 中编写与 Python 3 兼容的代码。
你可以试试:
In []: 5/2
Out[]: 2
In []: 5.0/2
Out[]: 2.5
In []: 5.0//2
Out[]: 2.0
这应该是不言自明的。
(这是在 Python 2.7 中。)
Python3 支持两种除法,浮点(/)和整数(//)。
浮点数:45/2 = 22.5
整数:45//2 = 22