$$\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 keyword elif 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


Category:Tested Examples