Está en la página 1de 49

Bucle 

for (1)

 
Bucle for (1)
 El bucle for
 Contadores y acumuladores
o Testigo
o Contador
o Acumulador
En esta lección se tratan los bucles for:

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:

for variable in elemento iterable (lista, cadena, range, etc.):


cuerpo del bucle

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")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

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 1 - Paso 1

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de bucle 1 - Paso 2

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

A continuación se ejecuta el bucle. La variable de control toma el primer valor de la lista.


En este caso, la variable de control es i y toma el valor 0.

 
Ejemplo de bucle 1 - Paso 3

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")
Comienzo

Hola

A continuación se ejecutan las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".

 
Ejemplo de bucle 1 - Paso 4

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola

A continuación la variable de control toma el segundo valor de la lista.


En este caso, la variable de control es i y toma el valor 1.

 
Ejemplo de bucle 1 - Paso 5

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola

A continuación se ejecutan por segunda vez las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".

 
Ejemplo de bucle 1 - Paso 6
print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola

A continuación la variable de control toma el tercer y último valor de la lista.


En este caso, la variable de control es i y toma el valor 2.

 
Ejemplo de bucle 1 - Paso 7

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

A continuación se ejecutan por tercera y última vez las instrucciones del bloque.
En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".

 
Ejemplo de bucle 1 - Paso 8

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola 

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime un salto de línea, para que el siguiente print() imprima en la línea
siguiente.

 
Ejemplo de bucle 1 - Paso 9

print("Comienzo")
for i in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

Final

La última instrucción del programa imprime el párrafo final.

Si la lista está vacía, el bucle no se ejecuta ninguna vez. Por ejemplo:


Ejemplo de bucle 2

print("Comienzo")
for i in []:
print("Hola ", end="")
print()
print("Final")

Comienzo

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 - Paso 1


print("Comienzo")
for i in []:
print("Hola ", end="")
print()
print("Final")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de bucle 2 - Paso 2

print("Comienzo")
for i in []:
print("Hola ", end="")
print()
print("Final")

Comienzo

A continuación se ejecuta el bucle. Como la lista está vacía, la variable de control no toma
ningún valor y el cuerpo del bucle no se ejecuta

 
Ejemplo de bucle 2 - Paso 3

print("Comienzo")
for i in []:
print("Hola ", end="")
print()
print("Final")

Comienzo

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime un salto de línea, para que el siguiente print() imprima en la línea
siguiente.
 
Ejemplo de bucle 2 - Paso 4

print("Comienzo")
for i in []:
print("Hola ", end="")
print()
print("Final")

Comienzo

Final

La última instrucción del programa imprime el párrafo final.

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")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

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 3 - Paso 1


print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de bucle 3 - Paso 2

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

A continuación se ejecuta el bucle. La variable de control toma el primer valor de la lista.


En este caso, la variable de control es i y toma el valor 1.

 
Ejemplo de bucle 3 - Paso 3

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola

A continuación se ejecutan las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".
 
Ejemplo de bucle 3 - Paso 4

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola

A continuación la variable de control toma el segundo valor de la lista.


En este caso, la variable de control es i y toma el valor 1.

 
Ejemplo de bucle 3 - Paso 5

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola

A continuación se ejecutan por segunda vez las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".

 
Ejemplo de bucle 3 - Paso 6

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")
Comienzo

Hola Hola

A continuación la variable de control toma el tercer y último valor de la lista.


En este caso, la variable de control es i y toma el valor 1.

 
Ejemplo de bucle 3 - Paso 7

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

A continuación se ejecutan por tercera y última vez las instrucciones del bloque.
En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".

 
Ejemplo de bucle 3 - Paso 8

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola 

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime un salto de línea, para que el siguiente print() imprima en la línea
siguiente.

 
Ejemplo de bucle 3 - Paso 9

print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

Final

La última instrucción del programa imprime el párrafo final.

Si la variable de control no se va a utilizar en el cuerpo del bucle, como en los ejemplos


anteriores, se puede utilizar el guion (_) en vez de un nombre de variable. Esta notación no
tiene ninguna consecuencia con respecto al funcionamiento del programa, pero sirve de
ayuda a la persona que esté leyendo el código fuente, que sabe así que los valores no se van
a utilizar. Por ejemplo:
Ejemplo de bucle 4

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

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 - Paso 1

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de bucle 4 - Paso 2

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

A continuación se ejecuta el bucle. El indicador _ toma el primer valor de la lista.


En este caso, el indicador _ toma el valor 0.

 
Ejemplo de bucle 4 - Paso 3

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola

A continuación se ejecutan las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".
 
Ejemplo de bucle 4 - Paso 4

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola

A continuación el indicador _ toma el segundo valor de la lista.


En este caso, el indicador _ toma el valor 1.

 
Ejemplo de bucle 4 - Paso 5

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola

A continuación se ejecutan por segunda vez las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".

 
Ejemplo de bucle 4 - Paso 6

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")
Comienzo

Hola Hola

A continuación el indicador _ toma el tercer y último valor de la lista.


En este caso, el indicador _ toma el valor 2.

 
Ejemplo de bucle 4 - Paso 7

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

A continuación se ejecutan por tercera y última vez las instrucciones del bloque.
En este caso el bloque consta de una sola instrucción que imprime el texto "Hola".

 
Ejemplo de bucle 4 - Paso 8

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime un salto de línea, para que el siguiente print() imprima en la línea
siguiente.

 
Ejemplo de bucle 4 - Paso 9

print("Comienzo")
for _ in [0, 1, 2]:
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola

Final

La última instrucción del programa imprime el párrafo final.

 
El indicador puede incluir cualquier número de guiones bajos (_, __, ___, ____, etc). Los
más utilizados son uno o dos guiones (_ o __).

En los ejemplos anteriores, la variable de control "i" no se utilizaba en el bloque de


instrucciones, pero en muchos casos sí que se utiliza. Cuando se utiliza, hay que tener en
cuenta que la variable de control va tomando los valores del elemento recorrible. Por
ejemplo:
Ejemplo de bucle 5

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Hola. Ahora i vale 3 y su cuadrado 9

Hola. Ahora i vale 4 y su cuadrado 16

Hola. Ahora i vale 5 y su cuadrado 25

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 5 - Paso 1

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de bucle 5 - Paso 2

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

A continuación se ejecuta el bucle. La variable de control toma el primer valor de la lista.


En este caso, la variable de control es i y toma el valor 3.

 
Ejemplo de bucle 5 - Paso 3

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Hola. Ahora i vale 3 y su cuadrado 9

A continuación se ejecutan las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola ...".

 
Ejemplo de bucle 5 - Paso 4

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Hola. Ahora i vale 3 y su cuadrado 9

A continuación la variable de control toma el segundo valor de la lista.


En este caso, la variable de control es i y toma el valor 4.

 
Ejemplo de bucle 5 - Paso 5

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Hola. Ahora i vale 3 y su cuadrado 9

Hola. Ahora i vale 4 y su cuadrado 16

A continuación se ejecutan por segunda vez las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola ...".

 
Ejemplo de bucle 5 - Paso 6

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Hola. Ahora i vale 3 y su cuadrado 9

Hola. Ahora i vale 4 y su cuadrado 16


A continuación la variable de control toma el tercer y último valor de la lista.
En este caso, la variable de control es i y toma el valor 5.

 
Ejemplo de bucle 5 - Paso 7

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Hola. Ahora i vale 3 y su cuadrado 9

Hola. Ahora i vale 4 y su cuadrado 16

Hola. Ahora i vale 5 y su cuadrado 25

A continuación se ejecutan por tercera y última vez las instrucciones del bloque.
En este caso el bloque consta de una sola instrucción que imprime el texto "Hola ...".

 
Ejemplo de bucle 5 - Paso 8

print("Comienzo")
for i in [3, 4, 5]:
print(f"Hola. Ahora i vale {i} y su cuadrado {i ** 2}")
print("Final")

Comienzo

Hola. Ahora i vale 3 y su cuadrado 9

Hola. Ahora i vale 4 y su cuadrado 16

Hola. Ahora i vale 5 y su cuadrado 25

Final

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime el párrafo final.

 
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")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Hola. Ahora i vale Alba

Hola. Ahora i vale Benito

Hola. Ahora i vale 27

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 6 - Paso 1

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de bucle 6 - Paso 2

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

A continuación se ejecuta el bucle. La variable de control toma el primer valor de la lista.


En este caso, la variable de control es i y toma el valor "Alba".

 
Ejemplo de bucle 6 - Paso 3

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Hola. Ahora i vale Alba

A continuación se ejecutan las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola ... Alba".

 
Ejemplo de bucle 6 - Paso 4

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Hola. Ahora i vale Alba

A continuación la variable de control toma el segundo valor de la lista.


En este caso, la variable de control es i y toma el valor "Benito".

 
Ejemplo de bucle 6 - Paso 5

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Hola. Ahora i vale Alba

Hola. Ahora i vale Benito

A continuación se ejecutan por segunda vez las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "Hola ...
Benito".

 
Ejemplo de bucle 6 - Paso 6

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Hola. Ahora i vale Alba

Hola. Ahora i vale Benito

A continuación la variable de control toma el tercer y último valor de la lista.


En este caso, la variable de control es i y toma el valor 27.

 
Ejemplo de bucle 6 - Paso 7

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Hola. Ahora i vale Alba

Hola. Ahora i vale Benito

Hola. Ahora i vale 27


A continuación se ejecutan por tercera y última vez las instrucciones del bloque.
En este caso el bloque consta de una sola instrucción que imprime el texto "Hola ... 27".

 
Ejemplo de bucle 6 - Paso 8

print("Comienzo")
for i in ["Alba", "Benito", 27]:
print(f"Hola. Ahora i vale {i}")
print("Final")

Comienzo

Hola. Ahora i vale Alba

Hola. Ahora i vale Benito

Hola. Ahora i vale 27

Final

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime el párrafo final.

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")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

1 * 1 = 1

2 * 2 = 4

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.

Ejemplo de bucle 7 - Paso 1

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de bucle 7 - Paso 2

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

A continuación se ejecuta el bucle. La variable de control toma el primer valor de la lista.


En este caso, la variable de control es numero y toma el valor 0.

 
Ejemplo de bucle 7 - Paso 3

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo
0 * 0 = 0

A continuación se ejecutan las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "0 * 0 = 0".

 
Ejemplo de bucle 7 - Paso 4

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

A continuación la variable de control toma el segundo valor de la lista.


En este caso, la variable de control es numero y toma el valor 1.

 
Ejemplo de bucle 7 - Paso 5

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

1 * 1 = 1

A continuación se ejecutan por segunda vez las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "1 * 1 = 1".

 
Ejemplo de bucle 7 - Paso 6

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

1 * 1 = 1

A continuación la variable de control toma el tercer valor de la lista.


En este caso, la variable de control es numero y toma el valor 2.

 
Ejemplo de bucle 7 - Paso 7

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

1 * 1 = 1

2 * 2 = 4

A continuación se ejecutan por tercera vez las instrucciones del bloque.


En este caso el bloque consta de una sola instrucción que imprime el texto "2 * 2 = 4".

 
Ejemplo de bucle 7 - Paso 8

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

1 * 1 = 1

2 * 2 = 4
A continuación la variable de control toma el cuarto y último valor de la lista.
En este caso, la variable de control es numero y toma el valor 3.

 
Ejemplo de bucle 7 - Paso 9

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

1 * 1 = 1

2 * 2 = 4

3 * 3 = 9

A continuación se ejecutan por cuarta y última vez las instrucciones del bloque.
En este caso el bloque consta de una sola instrucción que imprime el texto "3 * 3 = 9".

 
Ejemplo de bucle 7 - Paso 10

print("Comienzo")
for numero in [0, 1, 2, 3]:
print(f"{numero} * {numero} = {numero ** 2}")
print("Final")

Comienzo

0 * 0 = 0

1 * 1 = 1

2 * 2 = 4

3 * 3 = 9

Final

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime el párrafo final.
 

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:

i = 10
print(f"El bucle no ha comenzado. Ahora i vale {i}")

for i in [0, 1, 2, 3, 4]:


print(f"{i} * {i} = {i ** 2}")

print(f"El bucle ha terminado. Ahora i vale {i}")

El bucle no ha comenzado. Ahora i vale 10

0 * 0 = 0

1 * 1 = 1

2 * 2 = 4

3 * 3 = 9

4 * 4 = 16

El bucle ha terminado. Ahora i vale 4

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:

for i in [0, 1, 2]:


print(f"{i} * {i} = {i ** 2}")

print()

for i in [0, 1, 2, 3]:


print(f"{i} * {i} * {i} = {i ** 3}")

0 * 0 = 0

1 * 1 = 1
2 * 2 = 4

0 * 0 * 0 = 0

1 * 1 * 1 = 1

2 * 2 * 2 = 8

3 * 3 * 3 = 27

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:

for i in "AMIGO":
print(f"Dame una {i}")
print("¡AMIGO!")

Dame una A

Dame una M

Dame una I

Dame una G

Dame una O

¡AMIGO!

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")
for i in range(3):
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola


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.
En el ejemplo anterior basta cambiar el argumento para que el programa salude muchas
más veces.

print("Comienzo")
for i in range(10):
print("Hola ", end="")
print()
print("Final")

Comienzo

Hola Hola Hola Hola Hola Hola Hola Hola Hola Hola
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:

veces = int(input("¿Cuántas veces quiere que le salude? "))


for i in range(veces):
print("Hola ", end="")
print()
print("Adiós")

¿Cuántas veces quiere que le salude? 6

Hola Hola Hola Hola Hola Hola


Adiós

Contadores, testigos y acumuladores


En muchos programas se necesitan variables que indiquen si simplemente ha ocurrido algo
(testigos), o que cuenten cuántas veces ha ocurrido algo (contadores), o que acumulen
valores (acumuladores). Las situaciones pueden ser muy diversas, por lo que en este
apartado simplemente se ofrecen unos ejemplos para mostrar la idea.

Testigo

Se entiende por testigo una variable que indica simplemente si una condición se ha
cumplido o no. Es un caso particular 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")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

Entre 1 y 5 hay al menos un 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.

Ejemplo de testigo - Paso 1

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de testigo - Paso 2

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecuta la siguiente instrucción


La variable encontrado, que hace el papel de testigo, toma el valor inicial False.

 
Ejemplo de testigo - Paso 3

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el primer valor del tipo range(). En este caso, la variable de
control es i y toma el valor 1.

 
Ejemplo de testigo - Paso 4

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como no lo es, (1 no es múltiplo de 2) el bloque dentro
del if no se ejecuta.

 
Ejemplo de testigo - Paso 5

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el segundo valor del tipo range(). En este caso, la variable de
control es i y toma el valor 2.

 
Ejemplo de testigo - Paso 6

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como sí lo es (2 es múltiplo de 2), el bloque dentro del if se
ejecuta.

 
Ejemplo de testigo - Paso 7

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecuta el bloque dentro del if.


En este caso a la variable encontrado (que valía False) pasa a valor True.

 
Ejemplo de testigo - Paso 8

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el tercer valor tipo range(). En este caso, la variable de control
es i y toma el valor 3.

 
Ejemplo de testigo - Paso 9

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como no lo es, (3 no es múltiplo de 2) el bloque dentro
del if no se ejecuta.

 
Ejemplo de testigo - Paso 10

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el cuarto valor del tipo range(). En este caso, la variable de
control es i y toma el valor 4.

 
Ejemplo de testigo - Paso 11

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como sí lo es (4 es múltiplo de 2), el bloque dentro del if se
ejecuta.

 
Ejemplo de testigo - Paso 12

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecuta el bloque dentro del if.


En este caso la variable encontrado ya valía True, por lo que sigue valiendo True

 
Ejemplo de testigo - Paso 13

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

La variable de control toma el quinto y último valor del tipo range(). En este caso, la
variable de control es i y toma el valor 5.

 
Ejemplo de testigo - Paso 14

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como no lo es, (5 no es múltiplo de 2) el bloque dentro
del if no se ejecuta.

 
Ejemplo de testigo - Paso 15

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, comprueba el valor del testigo encontrado. Como es True, se ejecuta el
bloque dentro del if.

 
Ejemplo de testigo - Paso final

print("Comienzo")
encontrado = False
for i in range(1, 6):
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.")

Comienzo

Entre 1 y 5 hay al menos un múltiplo de 2.

A continuación se ejecuta el bloque dentro del if.


Imprime el párrafo final indicando que entre el 1 y el 5 hay al menos un múltiplo de 2.

 
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)

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")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

Desde 1 hasta 5 hay 2 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.

Ejemplo de contador - Paso 1

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")
Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de contador - Paso 2

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecuta la siguiente instrucción


La variable cuenta, que hace el papel de contador, toma el valor inicial 0.

 
Ejemplo de contador - Paso 3

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el primer valor del tipo range(). En este caso, la variable de
control es i y toma el valor 1.

 
Ejemplo de contador - Paso 4
print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como no lo es, (1 no es múltiplo de 2) el bloque dentro
del if no se ejecuta.

 
Ejemplo de contador - Paso 5

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el segundo valor del tipo range(). En este caso, la variable de
control es i y toma el valor 2.

 
Ejemplo de contador - Paso 6

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")
Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como sí lo es (2 es múltiplo de 2), el bloque dentro del if se
ejecuta.

 
Ejemplo de contador - Paso 7

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecuta el bloque dentro del if.


En este caso a la variable cuenta (que valía 0) se le añade 1, por lo que ahora cuenta vale 1.

 
Ejemplo de contador - Paso 8

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el tercer valor tipo range(). En este caso, la variable de control
es i y toma el valor 3.

 
Ejemplo de contador - Paso 9

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como no lo es, (3 no es múltiplo de 2) el bloque dentro
del if no se ejecuta.

 
Ejemplo de contador - Paso 10

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el cuarto valor del tipo range(). En este caso, la variable de
control es i y toma el valor 4.

 
Ejemplo de contador - Paso 11

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como sí lo es (4 es múltiplo de 2), el bloque dentro del if se
ejecuta.

 
Ejemplo de contador - Paso 12

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecuta el bloque dentro del if.


En este caso a la variable cuenta (que valía 1) se le añade 1, por lo que ahora cuenta vale 2.

 
Ejemplo de contador - Paso 13

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

La variable de control toma el quinto y último valor del tipo range(). En este caso, la
variable de control es i y toma el valor 5.

 
Ejemplo de contador - Paso 14

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso se comprueba si la variable i es múltiplo de 2 (comprobando si el resto de la
división por 2 es igual a 0). Como no lo es, (5 no es múltiplo de 2) el bloque dentro
del if no se ejecuta.

 
Ejemplo de contador - Paso final

print("Comienzo")
cuenta = 0
for i in range(1, 6):
if i % 2 == 0:
cuenta = cuenta + 1
print(f"Desde 1 hasta 5 hay {cuenta} múltiplos de 2")

Comienzo

Desde 1 hasta 5 hay 2 múltiplos de 2

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime el párrafo final. En total, la variable contador ha aumentado hasta 2
(los dos múltiplos de 2 que hay entre 1 y 5).

 
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)
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")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

La suma de los números de 1 a 4 es 10

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 acumulador - Paso 1

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

Se ejecuta la primera instrucción del programa.


En este caso, imprime el párrafo de comienzo.

 
Ejemplo de acumulador - Paso 2

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")
Comienzo

A continuación se ejecuta la siguiente instrucción


La variable suma, que hace el papel de acumulador, toma el valor inicial 0.

 
Ejemplo de acumulador - Paso 3

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el primer valor de la lista.En este caso, la variable de control
es i y toma el valor 1.

 
Ejemplo de acumulador - Paso 4

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso a la variable suma (que valía 0) se le añade i (que vale 1), por lo que
ahora suma vale 1.

 
Ejemplo de acumulador - Paso 5

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el segundo valor de la lista. En este caso, la variable de control
es i y toma el valor 2.

 
Ejemplo de acumulador - Paso 6

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso a la variable suma (que valía 1) se le añade i (que vale 2), por lo que
ahora suma vale 3.

 
Ejemplo de acumulador - Paso 7

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el tercer valor de la lista. En este caso, la variable de control
es i y toma el valor 3.
 
Ejemplo de acumulador - Paso 8

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

A continuación se ejecutan las instrucciones del bloque.


En este caso a la variable suma (que valía 3) se le añade i (que vale 3), por lo que
ahora suma vale 6.

 
Ejemplo de acumulador - Paso 9

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

A continuación se ejecuta el bucle.


La variable de control toma el cuarto y último valor de la lista. En este caso, la variable de
control es i y toma el valor 4.

 
Ejemplo de acumulador - Paso 10

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")
Comienzo

A continuación se ejecutan por última vez las instrucciones del bloque.


En este caso a la variable suma (que valía 6) se le añade i (que vale 4), por lo que
ahora suma vale 10.

 
Ejemplo de acumulador - Paso 11

print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print(f"La suma de los números de 1 a 4 es {suma}")

Comienzo

La suma de los números de 1 a 4 es 10

Una vez terminado el bucle, se ejecuta la instrucción que sigue al bucle.


En este caso, imprime el párrafo final. En total, en la variable suma se han sumado los
valores 1, 2, 3 y 4.

 
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)

También podría gustarte