Contenido
Un bucle es una estructura que repite un bloque de código.
En Python, usamos bucles para:
- recorrer colecciones (listas, tuplas, sets, diccionarios, strings)
- repetir acciones varias veces
- ejecutar código hasta que se cumpla una condición
- buscar elementos
- construir resultados (sumas, contadores, filtros, etc.)
Los dos bucles principales en Python son:
for→ cuando recorres una secuencia/iterable o sabes “cuántas vueltas”while→ cuando repites mientras una condición sea verdadera (número de vueltas “desconocido”)
1) Bucle for
for recorre un iterable (lista, tupla, cadena, rango, diccionario, etc.)
Recorrer una lista
for elemento in [1, 2, 3, 4]:
print(elemento)
Recorrer un rango
for i in range(5): # 0,1,2,3,4
print(i)
Recorrer una cadena
palabra = "Python"
for letra in palabra:
print(letra)
1.1) range()
range() genera números sin crear una lista enorme en memoria.
range(fin)→ 0 … fin-1range(inicio, fin)→ inicio … fin-1range(inicio, fin, paso)→ saltos controlados
for i in range(1, 11):
print(i) # 1..10
for i in range(10, 0, -1):
print(i) # 10..1
1.2) Recorrer con índice: enumerate()
Cuando necesitas índice + valor, enumerate() es la forma correcta.
nombres = ["Ana", "Luis", "Carlos"]for indice, nombre in enumerate(nombres):
print(indice, nombre)
Empezar desde 1 (muy útil para menús):
for i, nombre in enumerate(nombres, start=1):
print(i, nombre)
1.3) Recorrer varias listas a la vez: zip()
nombres = ["Ana", "Luis", "Carlos"]
edades = [20, 25, 30]for nombre, edad in zip(nombres, edades):
print(nombre, edad)
2) Bucle while
while repite mientras la condición sea verdadera.
Contador simple
contador = 0
while contador < 5:
print(contador)
contador += 1
Se usa mucho en:
- validación de entrada (pedir hasta que sea correcto)
- menús
- bucles “hasta encontrar algo”
- juegos (adivina el número)
- lectura de datos hasta fin
3) Control del bucle: break, continue, pass
break (romper el bucle)
for n in range(10):
if n == 5:
break
print(n)
continue (saltar a la siguiente vuelta)
for n in range(10):
if n % 2 != 0:
continue
print(n) # solo pares
pass (no hacer nada, placeholder)
for n in range(3):
pass # "todavía no he programado esto"
4) El else en bucles (truco ninja de Python)
Un bucle puede tener else.
Se ejecuta solo si NO se ha hecho break.
Buscar un elemento
objetivo = 7for n in [1, 3, 5, 7, 9]:
if n == objetivo:
print("Encontrado")
break
else:
print("No encontrado")
5) Bucles anidados
Un bucle dentro de otro. Se usa en:
- tablas (filas/columnas)
- matrices
- combinaciones
for i in range(3):
for j in range(2):
print(f"i={i}, j={j}")
Tabla de multiplicar
numero = 5
for i in range(1, 11):
print(f"{numero} x {i} = {numero*i}")
6) Iteradores: iter() y next()
Puedes recorrer manualmente un iterable con un iterador.
frutas = ["manzana", "banana", "cereza"]
it = iter(frutas)print(next(it)) # manzana
print(next(it)) # banana
print(next(it)) # cereza
Si te pasas, lanza StopIteration.
7) Operadores relacionados: in y not in
frutas = ["manzana", "banana", "cereza"]
if "pera" not in frutas:
print("La pera no está en la lista")
8) Errores comunes y buenas prácticas
Error típico: bucle infinito con while
Si no actualizas la condición:
# cuidado: infinito
# while True:
# print("hola")
Buena práctica: evitar recorrer con índices si no hace falta
Mejor:
for fruta in frutas:
print(fruta)
En vez de:
for i in range(len(frutas)):
print(frutas[i])
9) Ejemplos guiados
Sumar lista de números
numeros = [1, 2, 3, 4, 5]
suma = 0for n in numeros:
suma += nprint(suma)
Filtrar pares
numeros = [10, 15, 20, 25, 30]
pares = []for n in numeros:
if n % 2 == 0:
pares.append(n)print(pares)
Recorrer diccionario
productos = {"manzana": 1.5, "banana": 0.8, "leche": 2.3}for producto, precio in productos.items():
print(producto, precio)
10) Ejercicios
Bloque 1: Iterar sobre listas
- Dada una lista de números, calcula la suma.
numeros = [1, 2, 3, 4, 5]
2. Dada una lista de nombres, imprime cada nombre en mayúsculas.
nombres = [«ana», «luis», «carlos»]
- Crea una lista con solo los pares.
numeros = [10, 15, 20, 25, 30]
Bloque 2: Iterar sobre diccionarios
1. Imprime producto y precio.
productos = {«manzana»: 1.5, «banana»: 0.8, «leche»: 2.3}
- Suma total de precios.
- Lista de productos cuyo precio sea mayor que 1.0.
Bloque 3: Iterar sobre cadenas
- Cuenta vocales en una cadena.
cadena = «Python es genial»
2. Invierte una cadena con un bucle.
cadena = «Hola Mundo»
3. Elimina espacios y genera una nueva.
cadena = «Hola a todos»
Bloque 4: Índices (`range` / `enumerate`)
1. Imprime del 1 al 10 con `range`.
2. Tabla del 5.
numero = 5
3. Con enumerate, imprime índice y valor.
frutas = [«manzana», «banana», «pera»]
Bloque 5: `while`
1. Imprime del 1 al 10.
2. Pide números hasta que introduzca 0 y suma todo.
3. Factorial con while.
numero = 5
Bloque 6: bucle infinito con break
- Contraseña correcta hasta acertar.
contrasena_correcta = «python123»
2. Genera aleatorios 1-10 hasta que salga > 8.
import random
3. Adivina número 1-20 o escribe «salir».










