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. With the if
statement we’ll be able to explore one of the most powerful ideas in computing, recursion.
But we’ll start with three new features: the modulus operator, boolean expressions, and logical operators.
Integer Division and Modulus
Recall that the integer division operator, //
, divides two numbers and rounds down to an integer. For example, suppose the runtime 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. Integer 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
Or you could 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 might seem. For example, it can check whether one number is divisible by another: if x % y
is zero, then x
is divisible by y
.
Also, it can extract the rightmost digit or digits from a number. For example, x % 10
yields the rightmost digit of x
(in base 10). Similarly, x % 100
yields the last two digits.
x
=
123
x
%
10
,
x
%
100
Get Think Python, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.