Volver a Python Básico
Bucles
Python dispone de dos estructuras de bucle principales: for y while.
Bucle for
# Iterar sobre un rango
for i in range(5):
print(i) # 0 1 2 3 4
# Iterar sobre una lista
frutas = ["manzana", "banana", "cereza"]
for fruta in frutas:
print(fruta)
# Con índice usando enumerate
for indice, fruta in enumerate(frutas):
print(f"{indice}: {fruta}")
range()
range(5) # 0, 1, 2, 3, 4
range(2, 8) # 2, 3, 4, 5, 6, 7
range(0, 10, 2) # 0, 2, 4, 6, 8 (paso)
range(10, 0, -1) # 10, 9, ..., 1 (cuenta regresiva)
Bucle while
contador = 0
while contador < 5:
print(contador)
contador += 1
break y continue
# break: salir del bucle anticipadamente
for n in range(10):
if n == 5:
break
print(n) # 0 1 2 3 4
# continue: saltar la iteración actual
for n in range(10):
if n % 2 == 0:
continue
print(n) # 1 3 5 7 9
else en Bucles
# else se ejecuta si el bucle termina sin break
for n in range(5):
if n == 10:
break
else:
print("Bucle completado sin break") # Esto se ejecuta
Patrones de Bucles
# Iterar sobre items de un diccionario
puntuaciones = {"Alice": 95, "Bob": 87, "Carol": 92}
for nombre, puntos in puntuaciones.items():
print(f"{nombre}: {puntos}")
# Combinar dos listas con zip
nombres = ["Alice", "Bob"]
edades = [30, 25]
for nombre, edad in zip(nombres, edades):
print(f"{nombre} tiene {edad} años")
# Aplanar una matriz
matriz = [[1, 2], [3, 4], [5, 6]]
plana = [num for fila in matriz for num in fila]
print(plana) # [1, 2, 3, 4, 5, 6]
Buena práctica: Prefiere bucles
forsobrewhilecuando iteres sobre secuencias. Usawhilecuando la condición de salida depende del estado del programa.