Lección 6: Bucles (for/while)
🎯 Objetivo
Repetir acciones con for y while, usando range(), y controlar con break/continue.
📘 Explicación
Los bucles sirven para repetir código sin copiar y pegar. for se usa cuando sabes cuántas veces repetir; while cuando repites mientras una condición sea verdadera.
🔑 Conceptos clave
- for: recorre una secuencia (ej. range)
- range(n): 0..n-1
- while: repite mientras se cumpla la condición
- break/continue: romper o saltar iteración
🧩 Ejemplos
Ejemplo 1: for con range — 0 a 4.
for i in range(5):
print(i)
Ejemplo 2: for con rango personalizado — De 2 a 10 de 2 en 2.
for i in range(2, 11, 2):
print(i)
Ejemplo 3: while básico — Incrementa para no quedar infinito.
x = 1
while x <= 3:
print(x)
x += 1
Ejemplo 4: Acumulador (sumar)
suma = 0
for n in range(1, 6):
suma += n
print(suma)
Ejemplo 5: break y continue — Salta 3 y se detiene en 5.
for n in range(1, 6):
if n == 3:
continue
if n == 5:
break
print(n)
🧪 Ejercicios propuestos
- Imprime los números del 1 al 10 con for.
- Imprime los números pares del 2 al 20.
- Calcula la suma de 1..100.
- Calcula el factorial de 5 (5*4*3*2*1).
- Muestra una tabla de multiplicar del 7 (7x1..7x10).
- Con while, pide (simulado) números hasta que sea 0 y suma los ingresados.
- Imprime del 10 al 1 en cuenta regresiva.
- Imprime solo los números que NO sean múltiplos de 3 entre 1..20.
- Cuenta cuántos números entre 1..50 son múltiplos de 7.
- Dibuja un triángulo de asteriscos de altura 5 (una línea por fila).
✅ Ver soluciones explicadas (10 ejercicios)
Intenta primero. Luego compara con estas soluciones y lee la explicación.
Ejercicio 1: Imprime los números del 1 al 10 con for.
for i in range(1, 11):
print(i)
Explicación: range(1,11) incluye 1..10.
Ejercicio 2: Imprime los números pares del 2 al 20.
for i in range(2, 21, 2):
print(i)
Explicación: Paso 2.
Ejercicio 3: Calcula la suma de 1..100.
suma = 0
for i in range(1, 101):
suma += i
print(suma)
Explicación: Acumulador.
Ejercicio 4: Calcula el factorial de 5 (5*4*3*2*1).
fact = 1
for i in range(1, 6):
fact *= i
print(fact)
Explicación: Multiplica acumulando.
Ejercicio 5: Muestra una tabla de multiplicar del 7 (7x1..7x10).
n = 7
for i in range(1, 11):
print(f"{n} x {i} = {n*i}")
Explicación: Usa f-string.
Ejercicio 6: Con while, pide (simulado) números hasta que sea 0 y suma los ingresados.
datos = [3, 5, -2, 0]
idx = 0
suma = 0
while True:
x = datos[idx]
idx += 1
if x == 0:
break
suma += x
print(suma)
Explicación: Simulamos entradas con lista para ejemplo offline.
Ejercicio 7: Imprime del 10 al 1 en cuenta regresiva.
for i in range(10, 0, -1):
print(i)
Explicación: Paso -1.
Ejercicio 8: Imprime solo los números que NO sean múltiplos de 3 entre 1..20.
for i in range(1, 21):
if i % 3 == 0:
continue
print(i)
Explicación: continue salta iteración.
Ejercicio 9: Cuenta cuántos números entre 1..50 son múltiplos de 7.
c = 0
for i in range(1, 51):
if i % 7 == 0:
c += 1
print(c)
Explicación: Contador.
Ejercicio 10: Dibuja un triángulo de asteriscos de altura 5 (una línea por fila).
for fila in range(1, 6):
print("*" * fila)
Explicación: Multiplicar string repite caracteres.
⚠️ Errores comunes
- Bucle infinito en while por no actualizar la variable (ej. olvidar
c += 1). - Usar range mal: recuerda que el final no se incluye.
- Confundir break (sale del bucle) con continue (salta a la siguiente vuelta).