Aprende Python · lección gratuita
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.
for variable in range(n): repite el bloque n veces, con la variable tomando los valores 0, 1, ..., n-1.range(inicio, fin) genera desde inicio hasta fin - 1 (el fin nunca se incluye).range(inicio, fin, paso) avanza de paso en paso; el paso puede ser negativo para contar hacia atrás.for va indentado (sangrado), igual que en if.total = 0) que se actualiza en cada vuelta.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
# 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 querange(a, b)llega hastab - 1. Si quieres incluir el númerob, escriberange(a, b + 1).
| Sintaxis | Qué hace | Ejemplo de valores |
|---|---|---|
range(n) | De 0 a n-1 | range(4) → 0,1,2,3 |
range(a, b) | De a a b-1 | range(2, 5) → 2,3,4 |
range(a, b, p) | De a a b-1 saltando p | range(0, 10, 3) → 0,3,6,9 |
range(a, b, -p) | Hacia atrás | range(5, 0, -1) → 5,4,3,2,1 |
for x in range(...): | Repite el bloque indentado | for i in range(3): |
total = 0 antes del bucle | Acumular en cada vuelta | total += n |
---