En este post aprenderemos qué son y cómo utilizar los bucles en Python (While y For), sus diferencias, cómo trabaja cada uno y en qué momento debemos utilizar uno u otro en diferentes casos prácticos. Además incorporamos condicionales y datos estructurados en ejemplos prácticos para que mejores tu lógica de programación.
📓 Abre tu cuaderno de Jupyter Notebook que creaste en la lección anterior (6-Operadores en Python) y vamos a crear un nuevo cuaderno para esta lección. Llámalo 7-Bucles en Python.
📚 Recursos externos para profundizar: Consulta la documentación oficial sobre el bucle for y la documentación sobre el bucle while.
🔄 ¿Qué son los bucles en Python?
Imagina que necesitas mostrar los nombres de 100 usuarios, recorrer todos los productos de una tienda o repetir una operación hasta que el usuario introduzca un dato correcto. Podríamos escribir la misma instrucción una y otra vez, pero sería poco práctico y muy difícil de mantener.
Aquí aparecen los bucles en Python. Un bucle nos permite repetir un bloque de código de forma automática, siguiendo unas determinadas reglas.
En Python utilizaremos principalmente dos tipos de bucles: for y while. Aunque ambos sirven para repetir código, funcionan de manera diferente y cada uno resulta más apropiado para determinadas situaciones.
Un bucle nos permite decirle a Python:
«Repite estas instrucciones siguiendo estas reglas».
A lo largo del artículo veremos cuándo utilizar for, cuándo utilizar while y cómo controlar el comportamiento de un bucle con break y continue.
Si todavía estás repasando las estructuras básicas de Python, también puedes consultar nuestro artículo sobre condicionales if, elif y else en Python, ya que los condicionales y los bucles suelen trabajar juntos.
⚡ El bucle For en Python
Los bucles for en Python, iteran sobre los ítems de cualquier secuencia (lista, cadena, diccionario) en el orden en que aparecen en la secuencia.
Iterar significa realizar cierta acción repetidas veces, y en el caso de for, hace referencia a recorrer elementos iterables, como puede ser un diccionario en búsqueda de un elemento en particular.

Este código podría leerse: Para «char» en L (lista) hacer:
- Si «char» es exactamente igual a «c»: Imprimir True
- Sino, si «char» es exactamente igual a «j»: Imprimir True
- Para todo lo demás será False, evidentemente.
Este bloque de código dentro del bucle se suele llamar «cuerpo del bucle» (que en este caso son condicionales), y cada repetición se suele llamar iteración.
Para no complicarnos tanto podemos entender al bucle for como el encargado de recorrer una secuencia buscando esos elementos que cumplen determinada condición y realizando alguna instrucción según sea especificada. Es importante recalcar que dichos elementos deben ser «iterables», es decir, recorribles.
Un bucle for podría verse como hojear un libro página por página y extraer solo las imágenes. El hecho de extraer solo las imágenes sería la condición y una vez extraídas todas se habría cumplido por lo que el bucle se detendría.
Si has comprendido el uso del ciclo for, es hora de ver su sintaxis. Venga que es muy sencillo!
🖋️ Sintaxis del bucle for
En el caso de un bucle for se debe especificar la variable donde se alojarán los ítem del elemento iterable (lista, diccionario, cadena, etc.)
Se coloca la sentencia for seguida de la variable donde se almacenarán los ítem y luego del operador «in» el elemento a iterar:
for variable in elemento_iterable:
cuerpo de la repetición
En este caso «elemento_iterable» debe ser obligadamente un elemento iterable, como por ejemplo, un dato estructurado (lista, tupla o diccionario, etc) si es una variable que almacena un solo dato único o es un objeto no iterable, obtendremos un error.
Ejemplo: Iterar una lista de números
# Ejemplo de bucle for para filtrar números pares
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
for num in numeros:
if num % 2 == 0: # Si el número es par
print(num)
2 4 6 8 10 12 14
Aquí estamos creando un bucle que itera sobre la lista números almacenando los ítem de ella en la variable «num» e imprimiendo aquellos que cumplen la condición de «al dividirlos por 2, da resto cero». Esto lo hacemos utilizando el operador aritmético «%» y el de comparación «==» que vimos anteriormente.
Si tu ejecutas este código verás que solo ha de imprimir los números pares, pero si cambiáramos el operador de comparación «==» (exactamente igual) por «!=» (diferente) a cero, nos imprimiría los impares. Prueba lo siguiente:
# Ejemplo de bucle for para filtrar números impares
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
for num in numeros:
if num % 2 != 0: # Si el número es impar
print(num)
1 3 5 7 9 11 13
El bucle es el mismo, pero solo hemos cambiado la condición y en este caso nos imprimirá los números impares de la lista «números».
Ejemplo: Contar letras en una cadena
# Ejemplo de bucle for para contar una letra en una cadena
entrada = "hola estoy programando en python"
contador = 0
cuentalaletra = 'a'
for letra in entrada:
if letra == cuentalaletra:
contador += 1
print(cuentalaletra, ':', contador)
a : 3
- En este ejemplo tenemos la variable «entrada» que almacena una cadena de texto (String), que podría ser cualquiera.
- Seguidamente definimos la variable contador donde iremos sumando 1 a la variable cada vez que se cumpla la condición.
- Definimos la variable cuentaletra que se encargará de almacenar el carácter a contar, en este caso «a».
- Definimos el bucle for, para la variable «letra» en la variable «entrada» (que es la que almacena la cadena de texto) hacer.
- Condición: Si la variable «letra» (que será cada letra, cada iteración) es exactamente igual a «cuentaletra» que será en este caso la letra «a» hacer:
- Sumamos 1 a contador automáticamente usando operadores.
- Finalmente imprimimos cuentaletra y la variable contador (que almacena cuantas veces encontró la letra)
⚡ El bucle While en Python
El bucle while nos permite ejecutar un bloque de código continuamente mientras la condición sea verdadera. Incluso podemos crear bucles infinitos.

Estos se ejecutan mientras la condición sea verdadera. Si la condición se cumple, se ejecutará el cuerpo del bucle y al finalizar se volverá a comprobar la condición. Si continúa siendo verdadera, se ejecutará nuevamente. En caso contrario, omitirá el bucle y continuará con la ejecución normal del programa.
Es importante aprendas a diferenciar los bucles en Python, comprendas su funcionamiento y sepas cuándo utilizar uno u otro.
A lo largo de este post veremos diferentes ejemplos que podrás probar en tu cuaderno Jupyter y jugar con el código para experimentar con su funcionamiento.
🖋️ Sintaxis del bucle while
Es realmente muy sencilla, escribimos la palabra reservada While seguida de la condición y dos puntos, debajo de esta se encontrara el cuerpo del mismo.
while (condición):
Cuerpo de la repetición
Veamos algunos ejemplos:
Ejemplo: Contador usando while
# Ejemplo de bucle while como contador
i = 0
while i <= 9:
i += 1
print(i)
1 2 3 4 5 6 7 8 9 10
- Definimos la variable «i» y le asignamos el valor «0».
- Seguidamente creamos el bucle While con la condición de que se ejecute mientras i sea menor o igual a 9 (revisar operadores de comparación)
- Dentro del cuerpo del bucle le sumamos 1 a i, automáticamente a cada vuelta del bucle.
- Finalmente imprimimos i.
Como verás se detiene cuando «i» alcanza el valor 10. Porque así está definido, ya que el bucle da una vuelta más y se encuentra con que «i» es igual a 10. Por ende, es mayor a 9. Si quieres que sea exactamente 9 debes tener en cuenta que la comprobación se hace cada comienzo del bucle, por lo que deberías cambiar la condición a detenerse en 8. Este es un detalle muy importante a tener en cuenta en cuanto al funcionamiento de los bucles en Python.
Ejemplo: Menú usando while infinito
# Ejemplo de menú interactivo con while
while True:
opcion = input("""Elige una fruta para tu desayuno:
1- Manzanas
2- Bananas
3- Nada
""")
if opcion == '1':
print("Has seleccionado manzanas")
elif opcion == '2':
print("Has seleccionado bananas")
elif opcion == '3':
print("Has seleccionado nada")
else:
print("Debes seleccionar una opción (1, 2 o 3)")
Nota: Se seguirá repitiendo hasta que el usuario seleccione una opción válida.
- Creamos un bucle infinito, ya que al colocar un «Mientras sea verdadero» se ejecutará indefinidamente.
- Definimos una variable para almacenar el input() o entrada del usuario y le presentamos las opciones. Las cuales se almacenarán en dicha variable.
- Creamos un condicional dentro del bucle que se encargará de comprobar que opción ha elegido el usuario y según la elegida habrá de imprimir.
- Dentro de cada condicional puedes colocar código personalizado para que suceda alguna otra cosa que solo un print(). Te invito a personalizar este código para practicar, puedes por ejemplo; crear una lista y presentarle al usuario la opción de añadir algún elemento según la opción seleccionada.
Fíjate que en este caso al seleccionar una opción se ejecutará lo que esté dentro del condicional y se volverán a presentar las opciones. Pero, ¿y si queremos que el programa se detenga al haber seleccionado una opción y ejecutado el código dentro del condicional?

El diagrama anterior te muestra de forma visual cómo funcionan break y continue dentro de un bucle for o while. Aunque ambos alteran el flujo, lo hacen de manera muy diferente:
Cuando Python encuentra un break, sale inmediatamente del bucle y continúa ejecutando el código que esté después de él. Las iteraciones restantes se ignoran por completo. Es como cuando estás leyendo un libro y encuentras la respuesta que buscabas: cierras el libro y no sigues leyendo el resto de páginas.
Úsalo cuando: ya hayas encontrado lo que necesitas y quieras detener la búsqueda. Por ejemplo, buscar un número en una lista y salir al encontrarlo.
Cuando Python encuentra un continue, no ejecuta el resto del código de esa iteración, pero el bucle sigue su curso con el siguiente elemento. Es como cuando estás leyendo un libro y encuentras una página que no te interesa: la saltas, pero sigues leyendo el libro.
Úsalo cuando: quieras omitir ciertos elementos o casos concretos, pero necesites seguir procesando el resto. Por ejemplo, procesar solo números positivos y saltar los negativos.
Recuerda: break termina el bucle. continue solo salta una iteración. Elige el que necesites según tu objetivo.
🛑 Break y Continue en Python
Dentro de un bucle, a veces necesitamos controlar su flujo de forma más precisa. Python nos ofrece dos instrucciones muy útiles: break y continue. Ambas permiten modificar el comportamiento normal de un bucle, pero lo hacen de manera diferente.
📚 Recursos oficiales: Consulta la documentación de Python sobre break y continue para profundizar.
🛑 La instrucción break
break se utiliza para finalizar inmediatamente la ejecución del bucle en el que se encuentra. Cuando Python encuentra un break, sale del bucle y continúa ejecutando el código que esté después de él. Es especialmente útil cuando queremos detener un bucle porque ya hemos encontrado lo que buscábamos.
Ejemplo de break: Buscar el primer número par en una lista.
# Buscar el primer número par
numeros = [3, 7, 5, 12, 9, 2, 8]
for num in numeros:
if num % 2 == 0:
print(f"Primer número par encontrado: {num}")
break
print("Bucle finalizado")
Primer número par encontrado: 12 Bucle finalizado
Como ves, el bucle se detiene en cuanto encuentra el primer número par (12). El resto de la lista (9, 2, 8) no se procesa porque break interrumpe la iteración.
🔄 La instrucción continue
continue se utiliza para saltar la iteración actual y continuar con la siguiente. Cuando Python encuentra un continue, no ejecuta el resto del código dentro del bucle para esa iteración, sino que pasa directamente a la siguiente repetición.
Ejemplo de continue: Imprimir solo los números impares de una lista.
# Imprimir solo números impares
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numeros:
if num % 2 == 0:
continue # Saltar números pares
print(f"Número impar: {num}")
print("Bucle finalizado")
Número impar: 1 Número impar: 3 Número impar: 5 Número impar: 7 Número impar: 9 Bucle finalizado
Aquí, continue hace que los números pares se salten: no se ejecuta el print() para ellos, pero el bucle sigue recorriendo el resto de la lista.
⚡ Diferencia clave entre break y continue
| Instrucción | Efecto | Consecuencia |
|---|---|---|
break |
Termina el bucle por completo. | No se ejecutan más iteraciones. |
continue |
Salta a la siguiente iteración. | El bucle continúa con el siguiente elemento. |
📌 ¿Cuándo utilizar break y cuándo continue?
La elección depende de lo que necesites hacer:
- Usa
breakcuando: hayas encontrado lo que buscabas y quieras detener el bucle inmediatamente (por ejemplo, buscar un elemento en una lista y salir al encontrarlo). - Usa
continuecuando: quieras omitir ciertos elementos o casos, pero sigas necesitando procesar el resto de los elementos (por ejemplo, ignorar valores no válidos y continuar con los siguientes).
💡 Ejemplo combinado: break y continue juntos
Veamos un ejemplo donde se usan ambas instrucciones para procesar una lista de números:
# Procesar números hasta que encontremos un número negativo
numeros = [4, 7, 3, -1, 5, 10, 0, 2]
for num in numeros:
if num < 0:
print("¡Número negativo detectado! Deteniendo el bucle.")
break
if num == 0:
print("Saltando el 0...")
continue
print(f"Procesando: {num}")
print("Programa terminado")
Procesando: 4 Procesando: 7 Procesando: 3 ¡Número negativo detectado! Deteniendo el bucle. Programa terminado
En este ejemplo, el bucle procesa los números hasta que encuentra el -1, donde break lo detiene. Si hubiera un 0, continue lo saltaría y continuaría con el siguiente número.
Recuerda que tanto break como continue solo afectan al bucle más interno donde se encuentran. Si tienes bucles anidados, solo afectarán al bucle que los contiene directamente.
La instrucción pass es como lo indica su nombre, una expresión nula, no hace nada. Es casi como si no existiera, pero nos permite crear un bucle sin colocar código en su cuerpo para añadirlo más tarde, utilizándolo como un relleno temporal.
La diferencia con continue es que este termina la iteración actual pero continúa con la siguiente instrucción o iteración del bucle, volviendo al inicio. En cambio, pass no hace nada y continúa con las siguientes instrucciones de este sin volver al inicio.
| Si necesitas… | Utiliza |
|---|---|
| Recorrer una lista, cadena, diccionario u otro iterable. | for |
| Repetir mientras una condición siga siendo verdadera. | while |
| Detener un bucle antes de que termine normalmente. | break |
| Saltar una iteración y continuar con la siguiente. | continue |
🆚 Diferencias entre For y While
| Característica | Bucle For | Bucle While |
|---|---|---|
| Traducción | «Para» | «Mientras» |
| Iteraciones | Número fijo (recorre un iterable) | Número variable (depende de una condición) |
| Bucle infinito | No se puede crear directamente | Se puede crear (while True:) |
| Uso común | Recorrer listas, cadenas, diccionarios | Esperar a que cambie una condición |
⚠️ Los errores más comunes al utilizar Bucles en Python
| Error | Solución |
|---|---|
Olvidar los dos puntos (:) |
Asegúrate de que cada bucle termine con : después de la condición. |
| No indentar correctamente | Usa 4 espacios o tab para indentar el cuerpo del bucle. |
| Condición siempre verdadera (bucle infinito) | Asegúrate de que la condición pueda volverse False en algún momento. |
| Acceder a índices inexistentes | Cuando necesites recorrer una colección, considera usar for elemento in coleccion en lugar de manejar índices manualmente. |
🚀 Conclusión – Bucles en Python
Los bucles en Python son herramientas fundamentales para automatizar tareas repetitivas. A lo largo de este artículo hemos visto:
| Situación | Bucle recomendado |
|---|---|
| Recorrer una lista, cadena, diccionario u otro iterable. | for |
Repetir un número fijo de veces (range()). |
for |
| Repetir hasta que una condición cambie. | while |
| Salir del bucle inmediatamente. | break |
| Saltar una iteración y continuar. | continue |
Recuerda que los bucles se combinan a la perfección con condicionales y operadores para crear programas dinámicos y eficientes.
¡Esto ha sido todo sobre los bucles en Python! Espero lo hayas comprendido al 100%. Si tienes dudas, déjame un comentario y te ayudaré. ¡No olvides suscribirte para seguir aprendiendo! 🐍
Adiooos! Esto ha sido todo sobre los bucles en Python, espero lo hayas comprendido al 100% y, si no, vuelve al inicio 8)
Cualquier duda puedes dejar un comentario! Gracias por visitar mi blog y no olvides suscribirte!! Nos vemos en la siguiente!
📅 Última actualización: agosto 24, 2026
