Café y Código

6. Bucles: Automatizando tareas 🔁

El Clásico: Bucle For

Es el más potente. Se usa cuando sabes exactamente cuántas veces quieres repetir algo o cuando quieres recorrer una lista.

Más abajo usamos listas y diccionarios como ejemplos cortos; en las lecciones 7 y 8 los ves en detalle (métodos, tuplas, claves y valores).

vueltas.py
PYTHON
1 # Repetir 5 veces (del 0 al 4)
2 for i in range(5):
3 print(f"Vuelta: ${i}")
4
5 # Recorrer una lista
6 frutas = ["Manzana", "Banana", "Cereza"]
7 for f in frutas:
8 print(f"Comiendo ${f}...")
9
10 # Recorrer un diccionario
11 precios = {"pan": 1, "leche": 2}
12 for producto, precio in precios.items():
13 print(f"El ${producto} cuesta $${precio}")

Break y Continue: Controlando el ciclo

A veces necesitas detener el bucle por completo (break) o saltar a la siguiente vuelta (continue).

control.py
PYTHON
1 # Buscar el número 3 y salir
2 for n in range(1, 10):
3 if n == 3:
4 print("¡Encontrado!")
5 break
6 print(n)

Bucle While: Mientras...

Se ejecuta mientras la condición sea verdadera. ¡Ten cuidado de no crear uno infinito!

entrenamiento.py
PYTHON
1 energia = 100
2
3 while energia > 0:
4 print("Entrenando... Energía actual: " + str(energia))
5 energia -= 20 # ¡Restamos energía cada vez!
6
7 print("¡Cansado! A descansar.")

For... else: ¿Sabías que los bucles tienen cláusula else?

En Python, el bloque else de un bucle se ejecuta si el bucle termina sin haber usado break.

for-else.py
PYTHON
1 # Ejemplo: buscar un número
2 numeros = [1, 2, 3, 4, 5]
3 buscar = 6
4
5 for n in numeros:
6 if n == buscar:
7 print(f"¡Encontré el {buscar}!")
8 break
9 else:
10 print(f"No se encontró el {buscar} en la lista.")

Continue: Saltar una vuelta

La instrucción continue salta el resto del código en la vuelta actual y pasa a la siguiente iteración.

continue.py
PYTHON
1 # Imprimir solo los números impares del 1 al 10
2 for i in range(1, 11):
3 if i % 2 == 0:
4 continue # Salta los pares
5 print(f"Impar: {i}")

Bucles anidados

Puedes poner un bucle dentro de otro. Útil para trabajar con tablas, matrices o combinaciones.

anidados.py
PYTHON
1 # Tabla de multiplicar del 1 al 3 (hasta 3)
2 for i in range(1, 4):
3 for j in range(1, 4):
4 print(f"{i} x {j} = {i*j}")
5 print("---")

Enumerate: Obtener índice y valor

En lugar de usar range(len(lista)), usa enumerate para obtener el índice y el valor en cada vuelta.

enumerate.py
PYTHON
1 lenguajes = ["Python", "JavaScript", "Java", "C++"]
2
3 for indice, lenguaje in enumerate(lenguajes):
4 print(f"{indice + 1}. {lenguaje}")

While con entrada de usuario

Los bucles while son útiles para pedir input repetidamente hasta que el usuario ingrese algo válido.

while-input.py
PYTHON
1 # Pedir nombre hasta que no esté vacío
2 while True:
3 nombre = input("Ingresa tu nombre: ").strip()
4 if nombre:
5 print(f"¡Hola, {nombre}!")
6 break
7 else:
8 print("El nombre no puede estar vacío.")

🐍 Desafío: La tabla del 2

Usa un bucle for que recorra un range de 1 a 10 y para cada número imprima el resultado de multiplicarlo por 2.

👁️ Ver solución sugerida
Python
PYTHON
1 for i in range(1, 11):
2 print(i * 2)

🏆 Regla de Oro: Validación de entrada en menús

Cuando creas menús con opciones numéricas, esta estructura es una regla de oro para evitar errores y asegurar que el usuario ingrese una opción válida.

Combina un bucle while con manejo de errores. Si aún no viste try/except, podés verlo en profundidad en la lección Try / Except, que viene después de esta.

Combina tres elementos clave:

  • while True: Repite el menú indefinidamente hasta que la opción sea válida.
  • try/except ValueError: Captura errores si el usuario ingresa algo que no es un número.
  • if/break: Sale del bucle solo si la opción está entre las permitidas.
regla-de-oro.py
PYTHON
1 print("[1] uno")
2 print("[2] dos")
3 print("[3] tres")
4
5 # regla de oro
6 while True:
7 try: # cualquier solicitud de numero
8 opc = int(input("ingrese una opc: "))
9 if opc == 1 or opc == 2 or opc == 3:
10 break
11 else:
12 print("ingrese la alternativa correcta.")
13 except ValueError:
14 print("error, ingrese nuevamente")

Esta estructura evita que tu programa se caiga si el usuario ingresa texto en lugar de un número, y garantiza que solo se acepten las opciones 1, 2 o 3.

Quiz de Bucles

Dato curioso: Primera versión pública en 1991; Guido van Rossum. Wikipedia

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.