Home > Article > Backend Development > What\'s the Difference Between Integer Division in Python 2 and Python 3?
Integer Division in Python 2 and Python 3: A Tale of Two Results
Dividing two numbers in Python may seem like a straightforward task, but there's a subtle difference between Python 2 and Python 3 that can lead to unexpected results.
In Python 2.7, the / operator performs integer division when both inputs are integers. This results in the integer quotient, discarding any fractional part. For example, 20/15 yields 1, which is the integer division result.
In Python 3, however, the / operator performs float division by default, regardless of the types of the inputs. This means that 20/15 gives a float result of 1.3333333333333333, which retains the fractional part.
To achieve integer division in Python 2, you can use the // operator, which rounds the quotient down to the nearest integer. Modulo operation can be done using the % operator. For instance:
>> 7 // 2 3 >> 7 % 2 1
To make Python 2 behave like Python 3 regarding float division, you can use the special import:
from __future__ import division
Make sure to import this before any other imports in your code.
So, remember: In Python 2.7, integer division defaults to /, while in Python 3 it is the other way around. To maintain consistency, it's recommended to use float division with the / operator and explicitly specify integer division using // and modulo using % in both versions of Python.
The above is the detailed content of What\'s the Difference Between Integer Division in Python 2 and Python 3?. For more information, please follow other related articles on the PHP Chinese website!