# Chapter 5. Conditionals and Recursion

The main topic of this chapter is the `if`

statement, which executes different code depending on the state of the program. But first I want to introduce two new operators: floor division and modulus.

# Floor Division and Modulus

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, dropping the fraction part:

>>> 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 ...

Get *Think Python, 2nd Edition* now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.