问题
I came across this sample of code from a radix sort:
def getDigit(num, base, digit_num):
# pulls the selected digit
return (num // base ** digit_num) % base
What does the '//
' do in Python?
回答1:
//
is the floor division operator. It produces the floor of the quotient of its operands, without floating-point rounding for integer operands. This is also sometimes referred to as integer division, even though you can use it with floats, because dividing integers with /
used to do this by default.
In Python 3, the ordinary /
division operator returns floating point values even if both operands are integers, so a different operator is needed for floor division. This is different from Python 2 where /
performed floor division if both operands were integers and floating point division if at least one of the operands was a floating point value.
The //
operator was first introduced for forward-compatibility in Python 2.2 when it was decided that Python 3 should have this new ability. Together with the ability to enable the Python 3 behavior via from __future__ import division
(also introduced in Python 2.2), this enables you to write Python 3-compatible code in Python 2.
回答2:
You can just try it:
In []: 5/2
Out[]: 2
In []: 5.0/2
Out[]: 2.5
In []: 5.0//2
Out[]: 2.0
This should be self-explanatory.
(This is in Python 2.7.)
来源:https://stackoverflow.com/questions/14444520/two-forward-slashes-in-python