Aprende Python · lección gratuita

Lección 09 · El bucle for y range()

Resumen

El bucle for permite repetir un bloque de código un número conocido de veces o recorrer una secuencia de valores. En Python, la forma más común de generar números para iterar es la función range(), que produce una secuencia de enteros sin necesidad de crearlos a mano. Esto convierte tareas repetitivas (sumar, contar, dibujar patrones) en pocas líneas claras.

Conceptos

Un bucle for recorre los elementos de una secuencia, uno por uno, ejecutando el bloque indentado para cada uno. La función range() es la fábrica de secuencias numéricas más usada: range(5) representa los números 0, 1, 2, 3, 4. Fíjate en dos cosas: empieza en 0 y no incluye el número final. Por eso range(5) da cinco valores pero el último es 4.

range() admite hasta tres argumentos: range(inicio, fin, paso). Con uno solo (range(fin)) cuenta desde 0. Con dos (range(inicio, fin)) eliges dónde empezar. Con tres controlas el salto: range(0, 10, 2) da los pares 0, 2, 4, 6, 8. Si el paso es negativo, el bucle cuenta hacia atrás, como en range(5, 0, -1) que produce 5, 4, 3, 2, 1.

El patrón de acumulación es fundamental: declaras una variable antes del bucle y la vas modificando en cada iteración. Así sumas, multiplicas o cuentas.

# Sumar los números del 1 al 5
total = 0
for n in range(1, 6):
    total = total + n
print(total)   # 15

Ejemplos

# 1) Repetir n veces (range con un argumento)
for i in range(3):
    print("Hola", i)
# Hola 0 / Hola 1 / Hola 2

# 2) Rango con inicio y fin (el fin no se incluye)
for n in range(2, 6):
    print(n)
# 2, 3, 4, 5

# 3) Paso de 2 en 2
for par in range(0, 10, 2):
    print(par)
# 0, 2, 4, 6, 8

# 4) Cuenta atrás con paso negativo y acumulación
producto = 1
for n in range(1, 5):
    producto = producto * n
print("4! =", producto)   # 4! = 24
💡 Recuerda que range(a, b) llega hasta b - 1. Si quieres incluir el número b, escribe range(a, b + 1).

Cheatsheet

SintaxisQué haceEjemplo de valores
range(n)De 0 a n-1range(4) → 0,1,2,3
range(a, b)De a a b-1range(2, 5) → 2,3,4
range(a, b, p)De a a b-1 saltando prange(0, 10, 3) → 0,3,6,9
range(a, b, -p)Hacia atrásrange(5, 0, -1) → 5,4,3,2,1
for x in range(...):Repite el bloque indentadofor i in range(3):
total = 0 antes del bucleAcumular en cada vueltatotal += n

---

← El bucle whilebreak, continue y else en bucles →

Ver todas las lecciones de Aprende Python →