Lección 6 · Repetición

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

  1. Imprime los números del 1 al 10 con for.
  2. Imprime los números pares del 2 al 20.
  3. Calcula la suma de 1..100.
  4. Calcula el factorial de 5 (5*4*3*2*1).
  5. Muestra una tabla de multiplicar del 7 (7x1..7x10).
  6. Con while, pide (simulado) números hasta que sea 0 y suma los ingresados.
  7. Imprime del 10 al 1 en cuenta regresiva.
  8. Imprime solo los números que NO sean múltiplos de 3 entre 1..20.
  9. Cuenta cuántos números entre 1..50 son múltiplos de 7.
  10. 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).