我从radix sort发现了这段代码:
def getDigit(num, base, digit_num):
# pulls the selected digit
return (num // base ** digit_num) % base
“//
”在Python中做了什么?
答案 0 :(得分:48)
//
是场内分部运营商。它生成其操作数的商的底数,而不对整数操作数进行浮点舍入。这有时也被称为整数除法,即使你可以将它与浮点数一起使用,因为默认情况下用/
除以整数。
在Python 3中,普通的/
除法运算符返回浮点值,即使两个操作数都是整数,因此底层除法需要不同的运算符。这与Python 2不同,其中/
执行分层,如果两个操作数都是整数,则浮点除法,如果至少有一个操作数是浮点值。
当确定Python 3应具备此新功能时,//
运算符首先在Python 2.2中引入了向前兼容性。结合通过from __future__ import division
(也在Python 2.2中引入)启用Python 3行为的能力,这使您能够在Python 2中编写与Python 3兼容的代码。
答案 1 :(得分:4)
你可以尝试一下:
In []: 5/2
Out[]: 2
In []: 5.0/2
Out[]: 2.5
In []: 5.0//2
Out[]: 2.0
这应该是不言自明的。
(这是在Python 2.7中。)