Los bucles son estructuras de control que nos permiten repetir un bloque de código varias veces o recorrer elementos en una secuencia. En Python disponemos del bucle for
y el bucle while
. A continuación mostraremos cómo utilizarlos con ejemplos para comprender mejor su funcionamiento.
Bucle «for»
El bucle for
se utiliza para iterar sobre secuencias de datos tales como cadenas, listas, tuplas, o diccionarios (estos tres últimos tipos de datos se explican con más detalle en otra unidad).
En el siguiente ejemplo, el bucle for
recorre la cadena mensaje
y muestra en la consola cada uno de sus caracteres:
# Ejemplo con una cadena mensaje = "Hola, Python!" for caracter in mensaje: print(caracter)
En el siguiente ejemplo empleamos un bucle for
para recorrer la lista frutas
y mostrar cada uno de sus elementos:
# Ejemplo con una lista frutas = ["manzana", "plátano", "naranja"] for fruta in frutas: print(fruta)
A continuación mostramos un bucle for
que recorre cada par clave-valor del diccionario estudiantes
y muestra el nombre y la edad de cada estudiante:
# Ejemplo con un diccionario estudiantes = {"Juan": 18, "María": 20, "Carlos": 22} for nombre, edad in estudiantes.items(): print(nombre, "tiene", edad, "años.")
Bucle «while»
El bucle while
se utiliza para repetir un bloque de código mientras una condición sea verdadera. En el siguiente ejemplo, el bucle while
muestra el valor del contador mientras sea menor o igual a 5:
contador = 1 while contador <= 5: print("Contador:", contador) contador += 1
Sentencias de control en bucles
Dentro de los bucles podemos utilizar las sentencias break
, continue
y else
para controlar el flujo de ejecución.
break
Permite salir del bucle de manera prematura si se cumple una condición. En el siguiente ejemplo, el bucle for
imprimirá los números del 1 al 4 y luego se detendrá cuando llegue a 5:
for numero in range(1, 11): if numero == 5: break print(numero)
continue
Permite saltar a la siguiente iteración del bucle si se cumple una condición. En el siguiente ejemplo, el bucle for
imprimirá solo los números impares del 1 al 10, saltando los números pares:
for numero in range(1, 11): if numero % 2 == 0: continue print(numero)
else
Se ejecuta cuando el bucle se completa sin encontrar una sentencia break
. Por ejemplo, el siguiente bucle for
imprimirá los números del 1 al 5 y luego el programa mostrará «Fin del bucle»:
for numero in range(1, 6): print(numero) else: print("Fin del bucle")
Bucles anidados
Podemos incluir bucles dentro de bucles, lo que se conoce como bucles anidados. También podemos utilizar break
y continue
para controlar el flujo de ejecución dentro de ellos. Por ejemplo, los siguientes bucles for
anidados imprimirán todos los pares (i, j)
del 1
al 3
, excepto cuando i
sea igual a 2
y j
sea igual a 2
. En este último caso, el break
provocará la salida del bucle interno, continuando con la siguiente iteración del bucle externo:
for i in range(1, 4): for j in range(1, 4): if i == 2 and j == 2: break print(i, j)
Bucles infinitos
Es importante tener cuidado con los bucles infinitos, ya que pueden llegar a ejecutar el código que contengan de forma indefinida si no incluimos correctamente una condición que los detenga. Pueden provocar que el programa se bloquee o entre en un estado no deseado. Por ejemplo, el siguiente bucle while
se ejecutará de forma indefinida, imprimiendo «Este es un bucle infinito» una y otra vez:
# Bucle infinito con while while True: print("Este es un bucle infinito")
Test
Evalúa tus conocimientos mediante este test que incluye preguntas relacionadas con esta unidad.