
El Poder de la Iteración
La razón principal por la que aprendemos a programar es para dejar de hacer tareas repetitivas. Si tienes que enviar el mismo correo a 500 clientes, hacerlo a mano es ineficiente y propenso a errores. En programación, usamos bucles (loops) para repetir una acción tantas veces como sea necesario.
Los bucles son los «trabajadores incansables» de tu código.
El Bucle `for`: Iterando Colecciones
El bucle `for` es ideal cuando sabes sobre qué quieres iterar (una lista de precios, una lista de correos, un rango de números). Recorre los elementos uno por uno.
Caso de Uso: Aplicar un aumento del 10% a una lista de precios.
precios_2023 = [100, 200, 50, 300]
precios_2024 = []
for precio in precios_2023:
nuevo_precio = precio * 1.10
precios_2024.append(nuevo_precio)
print(f"Precio ajustado: {nuevo_precio}")
print("Actualización completada.")
Aquí, la variable `precio` toma temporalmente el valor de cada elemento de la lista `precios_2023` en cada vuelta del bucle.
El Bucle `while`: Ejecución Condicional
A veces no sabes cuántas veces necesitas repetir algo, sino que dependes de una condición externa. El bucle `while` se ejecuta mientras una condición sea verdadera.
Caso de Uso: Intentar conectar a una API hasta tener éxito o esperar a que se alcance una meta de recaudación.
fondos_recaudados = 0
meta = 1000
donacion_promedio = 150
while fondos_recaudados
Advertencia de Seguridad: Con `while`, debes asegurarte de que la condición eventualmente se vuelva falsa. Si no, crearás un bucle infinito que congelará tu programa (y posiblemente tu navegador).
Control Fino: `break` y `continue`
Dentro de los bucles, tienes herramientas para alterar el flujo:
* `break`: Detiene el bucle abruptamente. (Ej: «Si encuentro el producto que busco, dejo de revisar la lista»).
* `continue`: Salta la iteración actual y pasa a la siguiente. (Ej: «Si el cliente no tiene email, salto al siguiente cliente sin intentar enviar correo»).
clientes = ["Ana", "", "Carlos", "Diana"]
for cliente in clientes:
if cliente == "":
continue # Salta el nombre vacío
print(f"Procesando cliente: {cliente}")