if:
A Simple (artificial) Example
Consider the problem of checking a number to see if it is positive or
negative, and outputting an appropriate message. The SIPO statements we
have used so far are not up to the task. The problem is that the message
we output depends on the sign of the variable, and that may change from
one run of the program to the next. That means that both the possible
output statements "is negative" and "is positive" must be present in
the program, and that the program must select which one to execute
based on the sign of the variable. Python has a selection statement
called if
that allows us to do that, like this:
value = int(input("Enter an integer (e.g, 23 or -118): "))
if value < 0:
print(value, "is negative")
else:
print(value, " is positive")
(Note that the statements after the if
and else
statements are
indented four spaces.)
The first statement should look familiar, but here's what happens next.
The if
statement says that if value
is less than 0 then the
first print
statement should be executed, otherwise ("else") the
second print
statement should be executed.
Here's how the execution of the statements takes place. When the
program reaches the if
statement, it evaluates the
expression value < 0
. If the expression is True
(the number stored
in value
is less than zero) it executes the first print
statement,
and then skips over the else
and the second print
statement. On the
other hand, if the expression is False
, it skips the
first print
statement and executes the statement after the else
. The
key is that in either case only one of the print
statements is
executed, i.e. the if
statement selects which one to execute based
on the test value < 0
.
The flow of control of this if
statement can be represented using a
flowchart as shown below. Following the arrows (the flow so to speak)
from top to bottom makes it clear that on any run of the program only
one of the two output statements will be executed.