While loops

While loops#

With for loops added to our programming tool set, we now have a way to run blocks of code repeatedly. for loops give us the ability to run blocks of code a definite number of times - we know exactly how many iterations a for loop will run. But what if we don’t know ahead of time how many times we’d like to repeat a block of code? while loops give us the ability to repeat executing blocks of code indefinitely until an exit condition is reached. Here is the general form that a while loop takes in python:

while some_condition:
    # statements to execute go here in the loop body

Here, some_condition can refer to any boolean expression (an expression that evaluates to True or False). A while loop will first check that some_condition is True and if so, then execute the loop body. Once the loop body completes, some_condition is checked again, and if it’s True, it will enter the body again. This process repeats until the evaluation of some_condition is False. Here is a more concrete representation of the progression of executing a while loop:

Step 1. Check if the condition is True. If yes, continue to Step 2. If not, skip to Step 4.

Step 2. Execute the statements in the loop body.

Step 3. Repeat Step 1.

Step 4. Exit the loop. Don’t execute the loop body, and instead proceed with executing the code after the loop.

The most important thing to note is that the condition is only checked once at the beginning of each potential iteration. This means that if the condition is True and we entered the loop body, the condition isn’t checked again until after the whole loop body is executed. You can think of a while loop like a repeating if statement.

Here is an example of a while loop that repeatedly subtracts 6 from some number num until num becomes negative:

After the loop exits, the value of num is -5. Go to the Python Tutor link below and copy and paste these lines there. Then run it to see a more detailed view of the order in which the lines are executed and how the variable num is updated in each iteration.

A great tool to use here is Python Tutor, which can visualize each step of simple Python programs. Try it out!

If it were possible, note that the above while loop would be equivalent to having an indefinite number of nested if statements checking the same condition and subtracting 6 if True:

num = 25
if num >= 0:
    num = num - 6
    if num >= 0:
        num = num - 6
        if num >= 0:
            num = num - 6
            .
            .
            .