Learn

A `while` loop isn’t only good for counting! Similar to how we saw `for` loops working with lists, we can use `while` loops to iterate through a list as well.

Let’s return to our ingredient list:

``ingredients = ["milk", "sugar", "vanilla extract", "dough", "chocolate"]``

We know that `while` loops require some form of a variable to track the condition of the loop to start and stop.

Take some time to think about what we would use to track whether we need to start/stop the loop if we want to iterate through `ingredients` and print every element.

Click here to find out!

We know that a list has a predetermined length. If we use the length of the list as the basis for how long our `while` loop needs to run, we can iterate the exact length of the list.

We can use the built-in Python `len()` function to accomplish this:

``````# Length would be equal to 5
length = len(ingredients)``````

We can then use this `length` in addition to another variable to construct the `while` loop:

``````length = len(ingredients)
index = 0

while index < length:
print(ingredients[index])
index += 1``````

Let’s break this down:

``````# Length will be 5 in this case
length = len(ingredients)``````
Explanation

As mentioned, we need a way to know how many times we need our loop to iterate based on the size of the collection.

This comes in the form of our `length` variable which stores the value of the length of the list.

``````# Index starts at zero
index = 0``````
Explanation

We still need an additional variable that will be used to compare against our `length`.

``while index < length:``
Explanation

In our `while` loop conditional, we will compare the `index` variable to the length of our list stored inside of the `length` variable.

On the first iteration, we will be comparing the equivalent of `0 < 5` which will evaluate to `True`, and start the execution of our loop body.

``````# The first iteration will print ingredients[0]
print(ingredients[index])``````
Explanation

Inside of our loop body, we can use the `index` variable to access our `ingredients` list and print the value at the current iteration.

Since our `index` starts at zero, our first iteration will print the value of the element at the zeroth index of our `ingredients` list, then the next iteration will print the value of the element at the first index, and so on.

``````# Increment index to access the next element in ingredients
# Each iteration gets closer to making the conditional no longer true
index += 1``````
Explanation

On each iteration of our `while` loop, we need to also increment the value of `index` to make sure our loop can stop once the `index` value is no longer smaller than the `length` value.

This increment also helps us access the next value of the `ingredients` list on the next iteration.

Our final output would be:

``````milk
sugar
vanilla extract
dough
chocolate``````

Let’s use a `while` loop to iterate through some lists!

### Instructions

1.

We are going to write a `while` loop to iterate over the provided list `python_topics`.

First, we will need a variable to represent the length of the list. This will help us know how many times our `while` loop needs to iterate.

Create a variable `length` and set its value to be the length of the list of `python_topics`.

2.

Next, we will require a variable to compare to our length variable to make sure we are able to implement a condition that eventually allows the loop to stop.

Create a variable called `index` and initialize the value to be `0`.

3.

Let’s now build our loop. We want our loop to iterate over the list of `python_topics` and on each iteration print `"I am learning about <element from python_topics>"`. For this loop we will need the following components:

1. A condition for our `while` loop
2. A statement in the loop body to print from our condition
3. A statement in the loop body to increment our index forward.

The end result should output:

``````I am learning about variables
I am learning about control flow
I am learning about loops
I am learning about modules
I am learning about classes``````

If you notice the Run button spinning continuously or a “Lost connection to Codecademy” message in an exercise, you may have an infinite loop! If the stop condition for our loop is never met, we will create an infinite loop which stops our program from running anything else. To exit out of an infinite loop in an exercise, refresh the page — then fix the code for your loop.

# Sign up to start coding

By signing up for Codecademy, you agree to Codecademy's Terms of Service & Privacy Policy.

## Or sign up using:

Already have an account?