Bucle for
No todas las repeticiones responden a la misma lógica. A veces un programa debe seguir ejecutando un bloque mientras una condición continúe siendo verdadera. En otras ocasiones, en cambio, necesita recorrer elementos que ya existen: los caracteres de una palabra, los valores de una lista o una secuencia de números. Cuando el problema tiene esa forma, el bucle for ofrece una manera especialmente clara de expresarlo.
Objetivo
Sección titulada «Objetivo»Comprender cómo la estructura for permite recorrer secuencias en Python y aplicar una misma acción a cada uno de sus elementos de forma ordenada y legible.
Recorrer en lugar de repetir
Sección titulada «Recorrer en lugar de repetir»La idea central de for no es simplemente “hacer algo varias veces”, sino hacer algo con cada elemento de una secuencia.
Esa diferencia es importante. Un while suele depender de una condición que cambia durante la ejecución. Un for, en cambio, trabaja sobre un conjunto de valores que ya puede recorrerse: una lista, una cadena de texto o una secuencia generada por range().
La forma general es esta:
for elemento in secuencia: instruccion_1 instruccion_2En esta estructura conviene reconocer tres partes:
fores la palabra reservada que inicia el cicloelementoes la variable que toma cada valor del recorridosecuenciarepresenta el conjunto de datos que se va a recorrer
Cómo avanza el ciclo
Sección titulada «Cómo avanza el ciclo»Una de las ventajas de for es que no obliga a controlar manualmente el avance del recorrido. Python se encarga de tomar cada elemento en orden y de ejecutar el bloque correspondiente.
flowchart TD A[Inicio] --> B[Tomar la secuencia] B --> C{¿Quedan elementos?} C -->|Sí| D[Asignar un elemento a la variable] D --> E[Ejecutar el bloque del for] E --> C C -->|No| F[Continuar con el programa]Este esquema muestra una idea importante: con for, el recorrido ya viene resuelto por la propia estructura. El programa no necesita preguntar “¿cuánto falta?” ni actualizar un contador manualmente en cada vuelta, como ocurre con frecuencia en while.
Un recorrido simple
Sección titulada «Un recorrido simple»Uno de los usos más frecuentes de for consiste en recorrer una lista y trabajar con cada uno de sus elementos.
frutas = ["manzana", "pera", "uva"]
for fruta in frutas: print(fruta)Aquí Python toma cada elemento de la lista frutas y lo asigna, uno por uno, a la variable fruta. Luego ejecuta el bloque indentado con ese valor.
En pantalla aparece esta secuencia:
manzanaperauvaEste ejemplo conviene leerlo con calma. El programa no imprime la lista completa de una sola vez. Recorre sus elementos y en cada vuelta trabaja con uno distinto.
Qué papel cumple cada parte
Sección titulada «Qué papel cumple cada parte»Para entender mejor un for, conviene observar qué función cumple cada componente de la estructura.
| Parte | Función | Ejemplo |
|---|---|---|
| Variable de recorrido | Guarda temporalmente el elemento actual | fruta |
| Secuencia | Entrega los valores que se recorrerán | frutas |
| Bloque indentado | Contiene la acción que se repite en cada vuelta | print(fruta) |
Mirado de esta manera, el ciclo se vuelve más fácil de leer: for toma un elemento, lo asigna a una variable, ejecuta una acción y luego continúa con el siguiente.
Repetir con range()
Sección titulada «Repetir con range()»En muchos casos no se desea recorrer una lista o una palabra, sino repetir una acción una cantidad determinada de veces. Para eso, Python ofrece la función range().
for numero in range(5): print(numero)En este caso, range(5) genera una secuencia de números que comienza en 0 y termina justo antes de 5.
Por eso, en pantalla aparece:
01234Este detalle suele sorprender al comienzo, porque muchas personas esperan que el 5 también aparezca. Sin embargo, range(5) no incluye el valor final indicado.
Más de una forma de usar range()
Sección titulada «Más de una forma de usar range()»range() puede utilizarse de distintas maneras según el recorrido que se necesite.
Solo valor final
Sección titulada «Solo valor final»for numero in range(5): print(numero)Aquí el recorrido comienza en 0 y avanza de uno en uno hasta antes de 5.
Inicio y fin
Sección titulada «Inicio y fin»for numero in range(1, 6): print(numero)Ahora el recorrido comienza en 1 y termina antes de 6.
12345Con salto
Sección titulada «Con salto»También es posible indicar un tercer valor para controlar el paso del recorrido.
for numero in range(0, 10, 2): print(numero)En este caso, el ciclo avanza de dos en dos:
02468Esto amplía bastante las posibilidades de for, porque permite construir recorridos numéricos más variados sin necesidad de manejar manualmente una variable de control.
Un texto, carácter por carácter
Sección titulada «Un texto, carácter por carácter»El bucle for no solo recorre listas o secuencias numéricas. También puede recorrer texto.
palabra = "Python"
for letra in palabra: print(letra)Aquí Python toma cada carácter de la cadena "Python" y lo asigna sucesivamente a la variable letra.
La salida queda así:
PythonEste ejemplo es especialmente útil porque ayuda a comprender que una cadena también puede verse como una secuencia. Es decir, no solo es un bloque de texto completo, sino un conjunto de caracteres que el programa puede recorrer uno a uno.
Cuando la cantidad depende de la entrada
Sección titulada «Cuando la cantidad depende de la entrada»En muchos programas, la cantidad de repeticiones depende de un valor ingresado por la persona usuaria.
veces = int(input("¿Cuántas veces deseas saludar? "))
for _ in range(veces): print("Hola")Aquí el programa solicita un número, lo convierte a entero y luego usa ese valor para controlar cuántas veces se repetirá el saludo.
Este patrón resulta muy común: la entrada define el tamaño del recorrido y for se encarga de ejecutarlo.
Pensar el problema con for
Sección titulada «Pensar el problema con for»Antes de escribir un for, conviene preguntarse:
- ¿Qué secuencia voy a recorrer?
- ¿Qué representa cada elemento del recorrido?
- ¿Qué acción debe repetirse en cada vuelta?
- ¿Necesito realmente el valor actual o solo repetir una cantidad de veces?
Estas preguntas ayudan a construir ciclos más claros y también a elegir mejor entre for y while.
Cuándo conviene usarlo
Sección titulada «Cuándo conviene usarlo»El bucle for suele ser una buena elección cuando el programa necesita recorrer elementos o repetir una acción un número conocido de veces.
Suele ser apropiado cuando:
- se desea recorrer una lista
- se necesita trabajar con cada carácter de una palabra
- se quiere repetir una acción una cantidad definida de veces
- el recorrido ya está determinado desde el comienzo
Si, en cambio, la repetición depende de una condición que cambia durante la ejecución y no de una secuencia ya dada, while suele resultar más adecuado.
Del concepto al código
Sección titulada «Del concepto al código»Escribe un programa en Python que solicite una palabra al usuario y luego muestre cada una de sus letras en una línea distinta.
El programa debe cumplir con los siguientes requisitos:
- Debe pedir una palabra usando
input() - Debe usar un bucle
for - Debe recorrer la palabra carácter por carácter
- Debe mostrar una letra por línea
Cuando ejecutes el programa, debería funcionar de la siguiente manera:
Ingresa una palabra: gatogatoPara profundizar
Sección titulada «Para profundizar»Si deseas ampliar este contenido con fuentes del propio lenguaje, estas lecturas son especialmente útiles:
-
Tutorial oficial de Python: herramientas de control de flujo
Presenta la estructuraforcon ejemplos progresivos y explica su relación conrange(). -
Referencia del lenguaje: sentencia
for
Describe con mayor precisión técnica cómo se definefordentro del lenguaje. -
Tipos integrados:
range
Explica cómo funcionarange()y por qué resulta útil en recorridos numéricos.