Conditional flow control is how the python interpreter chooses which code to execute. Think of it as how to express choices.

Boolean expressions are lines of code that resolve to a boolean object. There are only two values a boolean object can take: True or False.

Conditionals always base their decisions on the result of a boolean expression. They are always followed by a block of code.

Furthermore conditional loops enable us to harness logic relating to repetition.

Code Blocks

A block of code is code that will execute together. A block is defined by the use of indentation.

All types of conditionals use code blocks which are executed depending on the outcome of the conditional expression that guards their execution.

a = 4
if a == 4:
    print('This code block will execute')
    result = 5 + a
    print('This code block will not execute')
    result = a + 6


In other languages code blocks are defined by the use of braces `{}`s


Testing the equality of two objects returns True or False depending on how equality is defined on those two objects.

Equality on stings is defined as follows:

>>> '5' == '5'
>>> '5' == '6'

Generally the objects have to first be of the same type and then have the same value to be equal:

>>> 5 == '5'

The while loop

The while <condition>: construct is a way of instructing the interpreter to repeat indefinitely. The condition defines when the loop will terminate.


while <condition>:   # condition must evaluate to a boolean
    <code block>     # the indent defines the loop's code block


>>> import random
>>> warm = 20
>>> temperature = random.randrange(5, 30)
>>> while temperature <= warm:
...    print('cold')
...    temperature = random.randrange(5, 30)

visualising execution


Use while if you don’t when you only know a loop will terminate in a given condition.

loop keywords

break is a keyword that instructs the interpreter to break out of a loop. continue instructs the interpreter to skip the rest of the loop code block and continue with the next loop.


Practical: Loan

A loan repayment plan consists of a balance and monthly interest and repayments.

The loan amount in question is £100. Repayments are made at £20. Interest is charged monthly at %10.

Write a program that prints to screen the remaining balance after every month.

Practical: Shoe Conversion

A UK company wants to export shoes to continental Europe.

It hires you to write a program that prompts the user for a UK size and return the equivalent size it would be in Europe.

Here is a conversion table:

Europe UK
38 5
39 6
40 7
42 8

Practical: BMI Calculator

The NHS has hired you to create a BMI Calculator.

Write a command line program that asks a user for:

  • Weigth in Kilograms
  • Height in Meters

Return the bmi result, followed by the users’ BMI classification.

BMI Classification


You will have to do some research online for how to calculate a persons bmi.

BMI Classification
18.5 or less Underweight
18.5 to 24.99 Normal Weight
25 to 29.99 Overweight
30 to 34.99 Obesity (Class 1)
35 to 39.99 Obesity (Class 2)
40 or greater Morbid Obesity

Practical: Turtles Joypad

We want to control the movements of the turtle using instructions from the keyboard. Much like the way you’d control a character in a game.

Place this in a file called

import turtle

tess = turtle.Turtle()

while True:
    move = input('\nType a w d s for left up right down (q to exit): ')
    if move == 'a':
        tess.setheading(180)  # west

    # [ ... put your code here ... ]

    if move == 'q':