5.1: Floor division and modulus
- Page ID
- 40878
The floor division operator, //
, divides two numbers and rounds down to an integer. For example, suppose the run time of a movie is 105 minutes. You might want to know how long that is in hours. Conventional division returns a floating-point number:
>>> minutes = 105 >>> minutes / 60 1.75
But we don’t normally write hours with decimal points. Floor division returns the integer number of hours, rounding down:
>>> minutes = 105 >>> hours = minutes // 60 >>> hours 1
To get the remainder, you could subtract off one hour in minutes:
>>> remainder = minutes - hours * 60 >>> remainder 45
An alternative is to use the modulus operator, %
, which divides two numbers and returns the remainder.
>>> remainder = minutes % 60 >>> remainder 45
The modulus operator is more useful than it seems. For example, you can check whether one number is divisible by another—if x % y
is zero, then x
is divisible by y
.
Also, you can extract the right-most digit or digits from a number. For example, x % 10
yields the right-most digit of x
(in base 10). Similarly x % 100
yields the last two digits.
If you are using Python 2, division works differently. The division operator, /
, performs floor division if both operands are integers, and floating-point division if either operand is a float
.