\(\renewcommand\AA{\unicode{x212B}}\)
Control Structures¶
As in any programming language there are mechanisms to control program flow:
if ... else
,for ...
,while
Comparisons testing¶
Control flow requires knowing how to compare values, for instance does one value equal another. In Python there are 6 operators that deal with comparisons:
==
Tests for equality of two values, e.g.x == 2
!=
Tests for inequality of two values, e.g.x != 2
<
Tests if lhs is less than rhs, e.g.x < 2
>
Tests if lhs is greater than rhs, e.g.x > 2
<=
Tests if lhs is less than or equal to rhs, e.g.x <= 2
>=
Tests if lhs is greater than or equal rhs, e.g.x >= 2
Control blocks¶
In Python bodies within control blocks are defined by indentation: spaces or tabs. Each level of indentation defines a separate control block. Tabs and spaces should never be mixed and each block must have the same indentation level.
If else¶
The simplest control structure runs one of two different blocks of code depending on the value of a test,
x = 5
if x == 5:
print('x has the value 5')
else:
print('x does not equal 5')
x = 4
if x == 5:
print('x has the value 5')
else:
print('x does not equal 5')
Gives the output:
x has the value 5
x does not equal 5
To test for ranges combine test with the
and
keyword
x = 2
if x > 0 and x < 5:
print('x is between 0 and 5 (not inclusive)')
else:
print('x is outside the range 0->5')
x = 7
if x > 0 and x < 5:
print('x is between 0 and 5 (not inclusive)')
else:
print('x is outside the range 0->5')
Gives the output:
x is between 0 and 5 (not inclusive)
x is outside the range 0->5
Here we show an example of incorrect indentation and the subsequent error,
if x == 5:
print('In x = 5 routine')
print ('Doing correct thing') # Results in error "IndentationError:
# unindent does not match any outer
# indentation level"
else:
print('Everything else')
If … elif … else¶
For situations with more than 2 possible outcomes there is an enhanced version of
if ... else
using the keywordelif
to add additional blocks, e.g.
x = 3
if x == 1:
print('Running scenario 1')
elif x == 2:
print('Running scenario 2')
elif x == 3:
print('Running scenario 3')
else:
print('Unrecognized option')
Gives the output:
Running scenario 3
Tests can also be combined with the not to negate the test or with the or keyword to test one of two values.
x = 2
if x == 1 or x == 2:
print('Running scenario first range')
Gives the output:
Running scenario first range