While loops are very powerful programming structures that you can use in your programs to repeat a sequence of statements. Show
In this article, you will learn:
You will learn how while loops work behind the scenes with examples, tables, and diagrams. Are you ready? Let's begin. π πΉ Purpose and Use Cases for While LoopsLet's start with the purpose of while loops. What are they used for? They are used to repeat a sequence of statements an unknown number of times. This type of loop runs while a given condition is 7 and it only stops when the condition becomes 8.When we write a while loop, we don't explicitly define how many iterations will be completed, we only write the condition that has to be 7 to continue the process and 8 to stop it.π‘ Tip: if the while loop condition never evaluates to 8, then we will have an infinite loop, which is a loop that never stops (in theory) without external intervention.These are some examples of real use cases of while loops:
πΈ How While Loops WorkNow that you know what while loops are used for, let's see their main logic and how they work behind the scenes. Here we have a diagram: While LoopLet's break this down in more detail:
One of the most important characteristics of while loops is that the variables used in the loop condition are not updated automatically. We have to update their values explicitly with our code to make sure that the loop will eventually stop when the condition evaluates to 8.πΉ General Syntax of While LoopsGreat. Now you know how while loops work, so let's dive into the code and see how you can write a while loop in Python. This is the basic syntax: While Loop (Syntax)These are the main elements (in order):
π‘ Tip: The (PEP 8) recommends using 4 spaces per indentation level. Tabs should only be used to remain consistent with code that is already indented with tabs. πΈ Examples of While LoopsNow that you know how while loops work and how to write them in Python, let's see how they work behind the scenes with some examples. How a Basic While Loop WorksHere we have a basic while loop that prints the value of 2 while 2 is less than 8 ( 4):
If we run the code, we see this output:
Let's see what happens behind the scenes when the code runs:
π‘ Tip: If the while loop condition is 8 before starting the first iteration, the while loop will not even start running.User Input Using a While LoopNow let's see an example of a while loop in a program that takes user input. We will the 9 function to ask the user to enter an integer and that integer will only be appended to list if it's even.This is the code:
The loop condition is 0, so the loop will run while the length of the list 1 is strictly less than 4.Let's analyze this program line by line:
π‘ Tip: We need to convert (cast) the value entered by the user to an integer using the 6 function before assigning it to the variable because the 9 function returns a string ().
If we run this code with custom user input, we get the following output:
This table summarizes what happens behind the scenes when the code runs: π‘ Tip: The initial value of 9 is 0 because the list is initially empty. The last column of the table shows the length of the list at the end of the current iteration. This value is used to check the condition before the next iteration starts.As you can see in the table, the user enters even integers in the second, third, sixth, and eight iterations and these values are appended to the 1 list.Before a "ninth" iteration starts, the condition is checked again but now it evaluates to 8 because the 1 list has four elements (length 4), so the loop stops.If we check the value of the 1 list when the process has been completed, we see this:
Exactly what we expected, the while loop stopped when the condition 0 evaluated to 8.Now you know how while loops work behind the scenes and you've seen some practical examples, so let's dive into a key element of while loops: the condition. πΉ Tips for the Condition in While LoopsBefore you start working with while loops, you should know that the loop condition plays a central role in the functionality and output of a while loop. You must be very careful with the comparison operator that you choose because this is a very common source of bugs. For example, common errors include:
This can affect the number of iterations of the loop and even its output. Let's see an example: If we write this while loop with the condition 1: 0We see this output when the code runs: 1The loop completes three iterations and it stops when 2 is equal to 3.This table illustrates what happens behind the scenes when the code runs:
In this case, we used 7 as the comparison operator in the condition, but what do you think will happen if we use 8 instead? 2We see this output: 3The loop completes one more iteration because now we are using the "less than or equal to" operator 8 , so the condition is still 7 when 2 is equal to 3.This table illustrates what happens behind the scenes: Four iterations are completed. The condition is checked again before starting a "fifth" iteration. At this point, the value of 2 is 06, so the condition 07 is 8 and the loop stops.πΈ Infinite While LoopsNow you know how while loops work, but what do you think will happen if the while loop condition never evaluates to 8?What are Infinite While Loops?Remember that while loops don't update variables automatically (we are in charge of doing that explicitly with our code). So there is no guarantee that the loop will stop unless we write the necessary code to make the condition 8 at some point during the execution of the loop.If we don't do this and the condition always evaluates to 7, then we will have an infinite loop, which is a while loop that runs indefinitely (in theory).Infinite loops are typically the result of a bug, but they can also be caused intentionally when we want to repeat a sequence of statements indefinitely until a 6 statement is found.Let's see these two types of infinite loops in the examples below. π‘ Tip: A bug is an error in the program that causes incorrect or unexpected results. Example of Infinite LoopThis is an example of an unintentional infinite loop caused by a bug in the program: 4Analyze this code for a moment. Don't you notice something missing in the body of the loop? That's right! The value of the variable 2 is never updated (it's always 14). Therefore, the condition 15 is always 7 and the loop never stops.If we run this code, the output will be an "infinite" sequence of 17 messages because the body of the loop 18 will run indefinitely. 5To stop the program, we will need to interrupt the loop manually by pressing 19.When we do, we will see a 20 error similar to this one:To fix this loop, we will need to update the value of 2 in the body of the loop to make sure that the condition 15 will eventually evaluate to 8.This is one possible solution, incrementing the value of 2 by 2 on every iteration: 6Great. Now you know how to fix infinite loops caused by a bug. You just need to write code to guarantee that the condition will eventually evaluate to 8.Let's start diving into intentional infinite loops and how they work. πΉ How to Make an Infinite Loop with While TrueWe can generate an infinite loop intentionally using 5. In this case, the loop will run indefinitely until the process is stopped by external intervention ( 19) or when a 6 statement is found (you will learn more about 6 in just a moment).This is the basic syntax: Instead of writing a condition after the 8 keyword, we just write the truth value directly to indicate that the condition will always be 7.Here we have an example: 7The loop runs until 19 is pressed, but Python also has a 6 statement that we can use directly in our code to stop this type of loop.The # Define the list nums = [] # The loop will run while the length of the # list nums is less than 4 while len(nums) < 4: # Ask for user input and store it in a variable as an integer. user_input = int(input("Enter an integer: ")) # If the input is an even number, add it to the list if user_input % 2 == 0: nums.append(user_input)6 statementThis statement is used to stop a loop immediately. You should think of it as a red "stop sign" that you can use in your code to have more control over the behavior of the loop. According to the : The statement, like in C, breaks out of the innermost enclosing or loop. This diagram illustrates the basic logic of the 6 statement:The 6 statementThis is the basic logic of the 6 statement:
We can use 6 to stop a while loop when a condition is met at a particular point of its execution, so you will typically find it within a conditional statement, like this: 8This stops the loop immediately if the condition is 7.π‘ Tip: You can (in theory) write a 6 statement anywhere in the body of the loop. It doesn't necessarily have to be part of a conditional, but we commonly use it to stop the loop when a given condition is 7.Here we have an example of 6 in a 5 loop:Let's see it in more detail: The first line defines a 5 loop that will run indefinitely until a 6 statement is found (or until it is interrupted with 19). 9The second line asks for user input. This input is converted to an integer and assigned to the variable 5.
The third line checks if the input is odd. 1If it is, the message 55 is printed and the 6 statement stops the loop immediately. 2Else, if the input is even , the message 57 is printed and the loop starts again. 3The loop will run indefinitely until an odd integer is entered because that is the only way in which the 6 statement will be found.Here we have an example with custom user input: 4πΈ In Summary
I really hope you liked my article and found it helpful. Now you know how to work with While Loops in Python. Follow me on Twitter @EstefaniaCassN and if you want to learn more about this topic, check out my online course Python Loops and Looping Techniques: Beginner to Advanced. ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT ADVERTISEMENT Developer, technical writer, and content creator @freeCodeCamp. I run the freeCodeCamp.org EspaΓ±ol YouTube channel. If you read this far, tweet to the author to show them you care. Tweet a thanks Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started |