Skip to main content Link Menu Expand (external link) Left Arrow Right Arrow Document Search Copy Copied

Lesson 4 - Control Structures

Up until now, we’ve been executing lines sequentially, one after another. With control structures, we can execute lines conditionally or even create loops of instructions.

Table of Contents

Lesson Objectives

  • Conditionally execute code using if statements.
  • Loop code using while loops and for loops.
  • Learn about the pass, break, and continue keywords.

Conditional Statements

if Statements

With conditional statements, we can test a boolean expression to decide whether or not to execute lines of code. In Python, this is done using an if statement.

if expression:
  line1
  line2
line3

Take a look at the code block above. This is the general structure of an if statement. If the expression is evaluation to be True, line1 and line2 will execute. Otherwise, if the expression is evaluated to be False, Python will skip over line1 and line2.

An important part of Python that we haven’t discussed yet is the indentation. With if statements, anything you want to be included within the conditional statement needs to be indented with a Tab. In the example above, line1 and line2 are conditionally executed, whereas line3 will always be executed since it is not part of the if statement.

else Blocks

Occasionally, you’ll need to have two seperate pieces of code. One if the condition succeeds, and one if the condition fails. You can use the else keyword to do just that!

if expression:
  line1
  line2
else:
  line3

In the example above, line1 and line2 are executed if the expression evaluates to be True. Otherwise, if the expression evaluates to be False, line3 will be executed.

elif Blocks

Sometimes, if and else is not enough. You might need to test multiple ranges of numbers. This is where the elif keyword comes in.

if expression:
  line1
elif expression2:
  line2
else:
  line3

In the example above, line1 is executed if expression evalutes to be True. If and only if expression evaluates to be False, it will test expression2. If expression2 is True, line 2 will be executed. Otherwise, line3 will be executed.

Extra Exercises

Loops

In Python, there’s often a need to repeat pieces of code multiple times, whether they’re exactly the same or with a slight variance. There are two different control structures to deal with looping, while loops and for loops.

while Loops

while loops are used to repeat a piece of code until an expression evaluates to be False.

while expression:
  line1
  line2

line3

The code above would run line1 and line2 repeatedly until the expression is False. You can easily run into an infinite loop if you forget about the expression. For the loop to terminate, a part of the code inside the while loop has to modify the expression in some way.

Just like if statements, code inside while loops needs to be indented.

for Loops

for loops also repeat pieces of code, just like while loops. However, the number of times a for loop repeats is based on the number of items in an “iterable”. An iterable is an object that is capable of returning items one at a time. A great example of an iterable is a list.

for x in [1,2,3]:
  line1

In the code block above, line1 will execute 3 times. Every time a new loop starts, x is set to the value of the current iterable, meaning that we can use x as part of our code.

Code inside for loops also needs to be indented.

Input

for x in [1,2,3]:
  print(x)

Output

1
2
3

range() is a useful function for creating for loops. range(x) automatically creates a list from 0 to x (exclusive) for the loop to iterate over.

Input

for x in range(5):
  print(x)

Output

0
1
2
3
4

Pass, Break, and Continue

There are three keywords that occasionally find use in loops, pass, break and continue.

Pass

If you want to create an conditional statement or loop and leave it empty, you need to use the pass keyword. Python will give you an error if you leave it blank.

if expression:
  pass

for x in range(5):
  pass

Break

If you decide you want to “break” out of a while loop before the condition evaluates to False, or a for loop before it finishes iterating over the items, you can use break.

Input

myList = [5, 3, "word", 2, 6]
mySum = 0

for item in myList:
  # If the item is not an integer, reset the sum, send an error message, and break out of the loop.
  if type(item) != type(1): 
    mySum = 0
    print("ERR: This list contains an item that is not an integer.")
    break
  else:
    mySum = mySum + item

print(f"The sum is {mySum}.")

Output

ERR: This list contains an item that is not an integer.
The sum is 0.

Continue

Rather than breaking out of a loop, you can also continue. continue skips the rest of the current iteration and moves onto the next one.

Input

myList = [5, 3, "word", 2, 6]
mySum = 0

for item in myList:
  # If the item is not an integer, send an error message and continue to the next iteration of the loop.
  if type(item) != type(1): 
    print("ERR: This list contains an item that is not an integer.")
    continue
  else:
    mySum = mySum + item

print(f"The sum is {mySum}.")

Output

ERR: This list contains an item that is not an integer.
The sum is 16.

Key Points / Summary

  • You can use the if, else, and elif to create conditionally executed code.
  • You can also use for and while to create loops.
  • Use pass to fill up empty conditional statements or loops and prevent errors.
  • break and continue can skip iterations of a loop, or stop the loop completely.