Next: for loops Up: Programming Previous: Truth, Falsehood and Logical   Contents

# if statement

The if statement, along with optional elif and/or else statements is the basic tool in python for performing conditional execution. The basic form of the statement can be summarized as:
```         if expression :
statement(s)
elif expression:
statement(s)
elif expression:
statement(s)
. . .
else:
statements
```
Python evaluates the expression after the if, and, if it is true, carries out the statement(s) which follow; if it is not true, it proceeds to the elif statement (if there is one), and tests that expression. It continues testing the expressions associated with any elif statements, and, once it finds an expression that is true, it carries out the corresponding statement(s) and jumps to the statement following the end of the if block. If it doesn't encounter any true expressions after trying all the elif clauses, and there is an else statement present, it will execute the statements associated with the else; otherwise, it just continues with the statement following the if block. Notice that once python encounters a true expression associated with an if or elif statement, it carries out the statements associated with that if or elif, and doesn't bother to check any other expressions. One implication of this is that if you need to test a number of possibilities where only one can be true, you should always use a set of if/elif clauses so that no extra work is done once the true expression has been found. For example, suppose we wish to do one of three different tasks depending on whether a variable x has the value 1, 2, or 3. Notice the subtle difference between these two pieces of code:
```#  first method - execution stops once the correct choice is found
if x == 1:
z = 1
print 'Setting z to 1'
elif x == 2:
y = 2
print 'Setting y to 2'
elif x == 3:
w = 3
print 'Setting w to 3'

# second method - all three tests are done regardless of x's value
if x == 1:
z = 1
print 'Setting z to 1'
if x == 2:
y = 2
print 'Setting y to 2'
if x == 3:
w = 3
print 'Setting w to 3'
```
Since x can only have one value, there's no need to test its value once the appropriate task is performed.

Next: for loops Up: Programming Previous: Truth, Falsehood and Logical   Contents
Phil Spector 2003-11-12