¡Bienvenidos! Si desea aprender a trabajar con bucles while en Python, este artículo es para usted.
Mientras que los bucles son estructuras de programación muy poderosas que puede usar en sus programas para repetir una secuencia de declaraciones.
En este artículo, aprenderá:
- Qué son los bucles while.
- Para qué se utilizan.
- Cuándo deben usarse.
- Cómo trabajan entre bastidores.
- Cómo escribir un bucle while en Python.
- Qué son los bucles infinitos y cómo interrumpirlos.
- Para qué
while True
se utiliza y su sintaxis general. - Cómo usar una
break
declaración para detener un ciclo while.
Aprenderá cómo funcionan los bucles while entre bastidores con ejemplos, tablas y diagramas.
¿Estás listo? Vamos a empezar. ?
? Propósito y casos de uso para bucles while
Comencemos con el propósito de los bucles while. ¿Para qué se usan?
Se utilizan para repetir una secuencia de afirmaciones un número desconocido de veces. Este tipo de bucle se ejecuta mientras existe una condición determinada True
y solo se detiene cuando la condición se vuelve False
.
Cuando escribimos un ciclo while, no definimos explícitamente cuántas iteraciones se completarán, solo escribimos la condición que tiene que ser True
para continuar el proceso y False
detenerlo.
? Sugerencia: si la condición del ciclo while nunca se evalúa False
, entonces tendremos un ciclo infinito, que es un ciclo que nunca se detiene (en teoría) sin intervención externa.
Estos son algunos ejemplos de casos de uso reales de bucles while:
- Entrada del usuario: cuando solicitamos la entrada del usuario, debemos verificar si el valor ingresado es válido. No podemos saber de antemano cuántas veces el usuario ingresará una entrada no válida antes de que el programa pueda continuar. Por lo tanto, un ciclo while sería perfecto para este escenario.
- Búsqueda: buscar un elemento en una estructura de datos es otro caso de uso perfecto para un ciclo while porque no podemos saber de antemano cuántas iteraciones serán necesarias para encontrar el valor objetivo. Por ejemplo, el algoritmo de búsqueda binaria se puede implementar utilizando un bucle while.
- Juegos: En un juego, se puede usar un bucle while para mantener la lógica principal del juego en funcionamiento hasta que el jugador pierde o el juego termina. No podemos saber de antemano cuándo sucederá esto, por lo que este es otro escenario perfecto para un ciclo de tiempo.
? Cómo funcionan los bucles while
Ahora que sabe para qué se usan los bucles while, veamos su lógica principal y cómo funcionan detrás de escena. Aquí tenemos un diagrama:

Analicemos esto con más detalle:
- El proceso comienza cuando se encuentra un bucle while durante la ejecución del programa.
- La condición se evalúa para verificar si es
True
oFalse
. - Si la condición es
True
, se ejecutan las sentencias que pertenecen al ciclo. - Se vuelve a comprobar la condición del ciclo while.
- Si la condición se evalúa
True
nuevamente, la secuencia de declaraciones se ejecuta nuevamente y el proceso se repite. - Cuando la condición se evalúa
False
, el ciclo se detiene y el programa continúa más allá del ciclo.
Una de las características más importantes de los bucles while es que las variables utilizadas en la condición de bucle no se actualizan automáticamente. Tenemos que actualizar sus valores explícitamente con nuestro código para asegurarnos de que el bucle finalmente se detenga cuando la condición se evalúe False
.
? Sintaxis general de los bucles while
Excelente. Ahora ya sabe cómo funcionan los bucles while, así que profundicemos en el código y veamos cómo puede escribir un bucle while en Python. Esta es la sintaxis básica:

Estos son los elementos principales (en orden):
- La
while
palabra clave (seguida de un espacio). - Una condición para determinar si el ciclo continuará ejecutándose o no según su valor de verdad (
True
oFalse
). - Dos puntos (
:
) al final de la primera línea. - La secuencia de declaraciones que se repetirán. Este bloque de código se denomina "cuerpo" del bucle y debe tener sangría. Si una declaración no tiene sangría, no se considerará parte del ciclo (consulte el diagrama a continuación).

? Consejo: La guía de estilo de Python (PEP 8) recomienda utilizar 4 espacios por nivel de sangría. Las pestañas solo deben usarse para mantener la coherencia con el código que ya está sangrado con pestañas.
? Ejemplos de bucles while
Ahora que sabe cómo funcionan los bucles while y cómo escribirlos en Python, veamos cómo funcionan entre bastidores con algunos ejemplos.
Cómo funciona un bucle while básico
Aquí tenemos un ciclo while básico que imprime el valor de i
whilei
es menor que 8 ( i < 8
):
i = 4 while i < 8: print(i) i += 1
Si ejecutamos el código, vemos esta salida:
4 5 6 7
Let's see what happens behind the scenes when the code runs:

- Iteration 1: initially, the value of
i
is 4, so the conditioni < 8
evaluates toTrue
and the loop starts to run. The value ofi
is printed (4) and this value is incremented by 1. The loop starts again. - Iteration 2: now the value of
i
is 5, so the conditioni < 8
evaluates toTrue
. The body of the loop runs, the value ofi
is printed (5) and this valuei
is incremented by 1. The loop starts again. - Iterations 3 and 4: The same process is repeated for the third and fourth iterations, so the integers 6 and 7 are printed.
- Before starting the fifth iteration, the value of
i
is8
. Now the while loop conditioni < 8
evaluates toFalse
and the loop stops immediately.
? Tip: If the while loop condition is False
before starting the first iteration, the while loop will not even start running.
User Input Using a While Loop
Now let's see an example of a while loop in a program that takes user input. We will the input()
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:
# 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)
The loop condition is len(nums) < 4
, so the loop will run while the length of the list nums
is strictly less than 4.
Let's analyze this program line by line:
- We start by defining an empty list and assigning it to a variable called
nums
.
nums = []
- Then, we define a while loop that will run while
len(nums) < 4
.
while len(nums) < 4:
- We ask for user input with the
input()
function and store it in theuser_input
variable.
user_input = int(input("Enter an integer: "))
? Tip: We need to convert (cast) the value entered by the user to an integer using the int()
function before assigning it to the variable because the input()
function returns a string (source).
- We check if this value is even or odd.
if user_input % 2 == 0:
- If it's even, we append it to the
nums
list.
nums.append(user_input)
- Else, if it's odd, the loop starts again and the condition is checked to determine if the loop should continue or not.
If we run this code with custom user input, we get the following output:
Enter an integer: 3 Enter an integer: 4 Enter an integer: 2 Enter an integer: 1 Enter an integer: 7 Enter an integer: 6 Enter an integer: 3 Enter an integer: 4
This table summarizes what happens behind the scenes when the code runs:

? Tip: The initial value of len(nums)
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 nums
list.
Before a "ninth" iteration starts, the condition is checked again but now it evaluates to False
because the nums
list has four elements (length 4), so the loop stops.
If we check the value of the nums
list when the process has been completed, we see this:
>>> nums [4, 2, 6, 4]
Exactly what we expected, the while loop stopped when the condition len(nums) < 4
evaluated to False
.
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 Loops
Before 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:
- Using
<
(less than) instead of<=
(less than or equal to) (or vice versa). - Using
>
(greater than) instead of>=
(greater than or equal to) (or vice versa).
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 i < 9
:
i = 6 while i < 9: print(i) i += 1
We see this output when the code runs:
6 7 8
The loop completes three iterations and it stops when i
is equal to 9
.
This table illustrates what happens behind the scenes when the code runs:

- Before the first iteration of the loop, the value of
i
is 6, so the conditioni < 9
isTrue
and the loop starts running. The value ofi
is printed and then it is incremented by 1. - In the second iteration of the loop, the value of
i
is 7, so the conditioni < 9
isTrue
. The body of the loop runs, the value ofi
is printed, and then it is incremented by 1. - In the third iteration of the loop, the value of
i
is 8, so the conditioni < 9
isTrue
. The body of the loop runs, the value ofi
is printed, and then it is incremented by 1. - The condition is checked again before a fourth iteration starts, but now the value of
i
is 9, soi < 9
isFalse
and the loop stops.
In this case, we used <
as the comparison operator in the condition, but what do you think will happen if we use <=
instead?
i = 6 while i <= 9: print(i) i += 1
We see this output:
6 7 8 9
The loop completes one more iteration because now we are using the "less than or equal to" operator <=
, so the condition is still True
when i
is equal to 9
.
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 i
is 10
, so the condition i <= 9
is False
and the loop stops.
? Infinite While Loops
Now you know how while loops work, but what do you think will happen if the while loop condition never evaluates to False
?

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 False
at some point during the execution of the loop.
If we don't do this and the condition always evaluates to True
, 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 break
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 Loop
This is an example of an unintentional infinite loop caused by a bug in the program:
# Define a variable i = 5 # Run this loop while i is less than 15 while i < 15: # Print a message print("Hello, World!")
Analyze 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 i
is never updated (it's always 5
). Therefore, the condition i < 15
is always True
and the loop never stops.
If we run this code, the output will be an "infinite" sequence of Hello, World!
messages because the body of the loop print("Hello, World!")
will run indefinitely.
Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! . . . # Continues indefinitely
To stop the program, we will need to interrupt the loop manually by pressing CTRL + C
.
When we do, we will see a KeyboardInterrupt
error similar to this one:

To fix this loop, we will need to update the value of i
in the body of the loop to make sure that the condition i < 15
will eventually evaluate to False
.
This is one possible solution, incrementing the value of i
by 2 on every iteration:
i = 5 while i < 15: print("Hello, World!") # Update the value of i i += 2
Great. 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 False
.
Let's start diving into intentional infinite loops and how they work.
? How to Make an Infinite Loop with While True
We can generate an infinite loop intentionally using while True
. In this case, the loop will run indefinitely until the process is stopped by external intervention (CTRL + C
) or when a break
statement is found (you will learn more about break
in just a moment).
This is the basic syntax:

Instead of writing a condition after the while
keyword, we just write the truth value directly to indicate that the condition will always be True
.
Here we have an example:
>>> while True: print(0) 0 0 0 0 0 0 0 0 0 0 0 0 0 Traceback (most recent call last): File "", line 2, in print(0) KeyboardInterrupt
El ciclo se ejecuta hasta que CTRL + C
se presiona, pero Python también tiene una break
declaración que podemos usar directamente en nuestro código para detener este tipo de ciclo.
La break
declaración
Esta declaración se utiliza para detener un bucle inmediatamente. Debería considerarlo como una "señal de stop" roja que puede utilizar en su código para tener más control sobre el comportamiento del bucle.

Según la documentación de Python:
Labreak
declaración, como en C, sale del bucle for
o encierro más interno while
.Este diagrama ilustra la lógica básica de la break
declaración:

Esta es la lógica básica de la break
declaración:
- El ciclo while comienza solo si la condición se evalúa como
True
. - If a
break
statement is found at any point during the execution of the loop, the loop stops immediately. - Else, if
break
is not found, the loop continues its normal execution and it stops when the condition evaluates toFalse
.
We can use break
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:
while True: # Code if : break # Code
This stops the loop immediately if the condition is True
.
? Tip: You can (in theory) write a break
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 True
.
Here we have an example of break
in a while True
loop:

Let's see it in more detail:
The first line defines a while True
loop that will run indefinitely until a break
statement is found (or until it is interrupted with CTRL + C
).
while True:
The second line asks for user input. This input is converted to an integer and assigned to the variable user_input
.
user_input = int(input("Enter an integer: "))
The third line checks if the input is odd.
if user_input % 2 != 0:
If it is, the message This number is odd
is printed and the break
statement stops the loop immediately.
print("This number of odd") break
Else, if the input is even , the message This number is even
is printed and the loop starts again.
print("This number is even")
The loop will run indefinitely until an odd integer is entered because that is the only way in which the break
statement will be found.
Here we have an example with custom user input:
Enter an integer: 4 This number is even Enter an integer: 6 This number is even Enter an integer: 8 This number is even Enter an integer: 3 This number is odd >>>
? In Summary
- While loops are programming structures used to repeat a sequence of statements while a condition is
True
. They stop when the condition evaluates toFalse
. - When you write a while loop, you need to make the necessary updates in your code to make sure that the loop will eventually stop.
- An infinite loop is a loop that runs indefinitely and it only stops with external intervention or when a
break
statement is found. - You can stop an infinite loop with
CTRL + C
. - You can generate an infinite loop intentionally with
while True
. - The
break
statement can be used to stop a while loop immediately.
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.