A program is a sequence of statements that are executed in top-down order. This linear execution order has some important exceptions:
- There might be a conditional execution of alternative groups of statements (blocks), which we refer to as branching.
- There are blocks that are executed repetitively, which is called looping (see Figure 1.3).
- There are function calls that are references to another piece of code, which is executed before the main program flow is resumed. A function call breaks the linear execution and pauses the execution of a program unit while it passes the control to another unit – a function. When this gets completed, its control is returned to the calling unit.

Figure 1.3: Program flow
Python uses a special syntax to mark blocks of statements: a keyword, a colon, and an indented sequence of statements, which belong to the block (see Figure 1.4).

Figure 1.4: Block command