Is there a benefit to using one over the other? In Python 2, they both seem to return the same results:
>>> 6/3
2
>>> 6//3
2
Is there a benefit to using one over the other? In Python 2, they both seem to return the same results:
>>> 6/3
2
>>> 6//3
2
5.0//2
results in2.0
, and not2
because the return type of the return value from//
operator follows python coercion (type casting) rules.Python promotes conversion of lower datatype (integer) to higher data type (float) to avoid data loss.
It helps to clarify for the Python 2.x line,
/
is neither floor division nor true division. The current accepted answer is not clear on this./
is floor division when both args are int, but is true division when either or both of the args are float.The above tells a lot more truth, and is a lot more clearer than the 2nd paragraph in the accepted answer.
As everyone has already answered,
//
is floor division.Why this is important is that
//
is unambiguously floor division, in all Python versions from 2.2, including Python 3.x versions.The behavior of
/
can change depending on:__future__
import or not (module-local)-Q old
or-Q new
//
implements "floor division", regardless of your type. So1.0/2.0
will give0.5
, but both1/2
,1//2
and1.0//2.0
will give0
.See https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator for details
/ --> Floating point division
// --> Floor division
Lets see some examples in both python 2.7 and in Python 3.5.
Python 2.7.10 vs. Python 3.5
Python 2.7.10 vs. Python 3.5
Now if you want to have (in python 2.7) same output as in python 3.5, you can do the following:
Python 2.7.10
Where as there is no differece between Floor division in both python 2.7 and in Python 3.5
The answer of the equation is rounded to the next smaller integer or float with .0 as decimal point.