6. Nested Conditionals¶
One conditional can also be nested within another. For example, assume we have two integer variables, x
and y
. The following pattern of selection shows how we might decide how they are related to each other.
if x < y:
print("x is less than y")
else:
if x > y:
print("x is greater than y")
else:
print("x and y must be equal")
The outer conditional contains two branches. The second branch (the outer else) contains another if
statement, which has two branches of its own. Those two branches could contain conditional statements as well.
The flow of control for this example can be seen in this flowchart illustration.

Here is a complete program that defines values for x
and y
. Run the program and see the result. Then change the values of the variables to change the flow of control.
x = 10
y = 10
if x < y:
print("x is less than y")
else:
if x > y:
print("x is greater than y")
else:
print("x and y must be equal")
Note
In some programming languages, matching the if
and the else
can be confusing. However, in Python this is not the case. The indentation pattern tells us exactly which else
belongs to which if
.
If you are still a bit unsure how the flow of control is working, here is the same selection as part of a codelens example. Step through it to see how the correct print
is chosen.
Python 3.3
Step 1 of 5 line that has just executed next line to execute |
| |||||||||||||||||||||||
(sel1)
Check your understanding
Will the following code cause an error?
x = -10
if x < 0:
print("The negative number ", x, " is not valid here.")
else:
if x > 0:
print(x, " is a positive number")
else:
print(x," is 0")