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
andkeyword
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 ... elseusing the keywordelifto 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