What is the difference between '/' and '//' when used for division?


Question

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
1
417
11/12/2018 6:11:32 PM

Accepted Answer

In Python 3.0, 5 / 2 will return 2.5 and 5 // 2 will return 2. The former is floating point division, and the latter is floor division, sometimes also called integer division.

In Python 2.2 or later in the 2.x line, there is no difference for integers unless you perform a from __future__ import division, which causes Python 2.x to adopt the behavior of 3.0

Regardless of the future import, 5.0 // 2 will return 2.0 since that's the floor division result of the operation.

You can find a detailed description at https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator

569
11/13/2014 8:33:15 AM

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.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon