Bucle For en Python
Bucle For en Python
Bucle For en Python
org
El bucle for
En general, un bucle es una estructura de control que repite un bloque de instrucciones. Un bucle
for es un bucle que repite el bloque de instrucciones un número prederminado de veces. El
bloque de instrucciones que se repite se suele llamar cuerpo del bucle y cada repetición se suele
llamar iteración.
La sintaxis de un bucle for es la siguiente:
No es necesario definir la variable de control antes del bucle, aunque se puede utilizar como
variable de control una variable ya definida en el programa.
El cuerpo del bucle se ejecuta tantas veces como elementos tenga el elemento recorrible
(elementos de una lista o de un range(), caracteres de una cadena, etc.). Por ejemplo:
Ejemplo de bucle 1
print("Comienzo") Comienzo
for i in [0, 1, 2]: Hola Hola Hola
print("Hola ", end="") Final
print()
print("Final")
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
Ejemplo de bucle 2
print("Comienzo") Comienzo
for i in []:
print("Hola ", end="") Final
print()
print("Final")
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
https://www.mclibre.org/consultar/python/lecciones/python-for.html#contador 1/7
1/6/2020 Bucle for (1). Python. Bartolomé Sintes Marco. www.mclibre.org
En el primer ejemplo, los valores que toma la variable no son importantes, lo que importa es que
la lista tiene tres elementos y por tanto el bucle se ejecuta tres veces. El siguiente programa
produciría el mismo resultado que el anterior:
Ejemplo de bucle 3
print("Comienzo") Comienzo
for i in [1, 1, 1]: Hola Hola Hola
print("Hola ", end="") Final
print()
print("Final")
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
Ejemplo de bucle 4
print("Comienzo") Comienzo
for _ in [0, 1, 2]: Hola Hola Hola
print("Hola ", end="") Final
print()
print("Final")
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
El indicador puede incluir cualquier número de guiones bajos (_, __, ___, ____, etc). Los más
utilizados son uno o dos guiones (_ o __).
Ejemplo de bucle 5
print("Comienzo") Comienzo
for i in [3, 4, 5]: Hola. Ahora i vale 3 y su cuadrado
print(f"Hola. Ahora i vale {i} 9
Hola. Ahora i vale 4 y su cuadrado
16
https://www.mclibre.org/consultar/python/lecciones/python-for.html#contador 2/7
1/6/2020 Bucle for (1). Python. Bartolomé Sintes Marco. www.mclibre.org
La lista puede contener cualquier tipo de elementos, no sólo números. El bucle se repetirá
siempre tantas veces como elementos tenga la lista y la variable irá tomando los valores de uno
en uno. Por ejemplo:
Ejemplo de bucle 6
print("Comienzo") Comienzo
for i in ["Alba", "Benito", 27]: Hola. Ahora i vale Alba
print(f"Hola. Ahora i vale Hola. Ahora i vale Benito
{i}") Hola. Ahora i vale 27
print("Final") Final
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
La costumbre más extendida es utilizar la letra i como nombre de la variable de control, pero se
puede utilizar cualquier otro nombre válido. Por ejemplo:
Ejemplo de bucle 7
print("Comienzo") Comienzo
for numero in [0, 1, 2, 3]: 0 * 0 = 0
print(f"{numero} * {numero} = 1 * 1 = 1
{numero ** 2}") 2 * 2 = 4
print("Final") 3 * 3 = 9
Final
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
La variable de control puede ser una variable empleada antes del bucle. El valor que tuviera la
variable no afecta a la ejecución del bucle, pero cuando termina el bucle, la variable de control
conserva el último valor asignado:
https://www.mclibre.org/consultar/python/lecciones/python-for.html#contador 3/7
1/6/2020 Bucle for (1). Python. Bartolomé Sintes Marco. www.mclibre.org
Cuando se escriben dos o más bucles seguidos, la costumbre es utilizar el mismo nombre de
variable puesto que cada bucle establece los valores de la variable sin importar los valores
anteriores:
En vez de una lista se puede escribir una cadena, en cuyo caso la variable de control va tomando
como valor cada uno de los caracteres:
En los ejemplos anteriores se ha utilizado una lista para facilitar la comprensión del
funcionamiento de los bucles pero, si es posible hacerlo, se recomienda utilizar tipos range(),
entre otros motivos porque durante la ejecución del programa ocupan menos memoria en el
ordenador.
El siguiente programa es equivalente al programa del ejemplo anterior:
print("Comienzo") Comienzo
for i in range(3) : Hola Hola Hola
print("Hola ", end="") Final
print()
print("Final")
Otra de las ventajas de utilizar tipos range() es que el argumento del tipo range() controla el
número de veces que se ejecuta el bucle.
https://www.mclibre.org/consultar/python/lecciones/python-for.html#contador 4/7
1/6/2020 Bucle for (1). Python. Bartolomé Sintes Marco. www.mclibre.org
En el ejemplo anterior basta cambiar el argumento para que el programa salude muchas más
veces.
print("Comienzo") Comienzo
for i in range(10) : Hola Hola Hola Hola Hola Hola Hola
print("Hola ", end="") Hola Hola Hola
print() Final
print("Final")
Esto permite que el número de iteraciones dependa del desarrollo del programa. En el ejemplo
siguiente es el usuario quien decide cuántas veces se ejecuta el bucle:
Contador
Se entiende por contador una variable que lleva la cuenta del número de veces que se ha
cumplido una condición. El ejemplo siguiente es un ejemplo de programa con contador (en este
caso, la variable que hace de contador es la variable cuenta):
Ejemplo de contador
print("Comienzo") Comienzo
cuenta = 0 Desde 1 hasta 5 hay 2 múltiplos de
for i in range(1, 6): 2
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay
{cuenta} múltiplos de 2")
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
https://www.mclibre.org/consultar/python/lecciones/python-for.html#contador 5/7
1/6/2020 Bucle for (1). Python. Bartolomé Sintes Marco. www.mclibre.org
Detalles importantes:
En cada iteración, el programa comprueba si i es múltiplo de 2.
El contador se modifica sólo si la variable de control i es múltiplo de 2.
El contador va aumentando de uno en uno.
Antes del bucle se debe dar un valor inicial al contador (en este caso, 0)
Testigo
Se entiende por testigo una variable que indica simplemente si una condicición se ha cumplido o
no. Es un caso particulador de contador, pero se suele hacer con variables lógicas en vez de
numéricas (en este caso, la variable que hace de testigo es la variable encontrado):
Ejemplo de testigo
print("Comienzo") Comienzo
encontrado = False Entre 1 y 5 hay al menos un
for i in range(1, 6): múltiplo de 2.
if i % 2 == 0:
encontrado = True
if encontrado:
print(f"Entre 1 y 5 hay al
menos un múltiplo de 2.")
else:
print(f"Entre 1 y 5 no hay
ningún múltiplo de 2.")
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
retroceso situados abajo a la derecha.
Detalles importantes:
En cada iteración, el programa comprueba si i es múltiplo de 2.
El testigo se modifica la primera vez que la variable de control i es múltiplo de 2.
El testigo no cambia una vez ha cambiado.
Antes del bucle se debe dar un valor inicial al testigo (en este caso, False)
Acumulador
Se entiende por acumulador una variable que acumula el resultado de una operación. El ejemplo
siguiente es un ejemplo de programa con acumulador (en este caso, la variable que hace de
acumulador es la variable suma):
Ejemplo de acumulador
print("Comienzo") Comienzo
suma = 0 La suma de los números de 1 a 4 es
https://www.mclibre.org/consultar/python/lecciones/python-for.html#contador 6/7
1/6/2020 Bucle for (1). Python. Bartolomé Sintes Marco. www.mclibre.org
Puede ver la ejecución paso a paso de este programa utilizando los iconos de avance y
t it d b j l d h
Detalles importantes:
El acumulador se modifica en cada iteración del bucle (en este caso, el valor de i se añade al
acumulador suma).
Antes del bucle se debe dar un valor inicial al acumulador (en este caso, 0)
Esta página forma parte del curso Introducción a la programación con Python por Bartolomé
Sintes Marco
que se distribuye bajo una Licencia Creative Commons Reconocimiento-CompartirIgual 4.0
Internacional (CC BY-SA 4.0).
https://www.mclibre.org/consultar/python/lecciones/python-for.html#contador 7/7