3.1 Loops for¶
Cómo escribir un loop for
¶
Mira este video de 2:35 a 7:19
Para español, haga click en configuración, seleccione “español” debajo de los subtítulos.
Traducción por Erik Amézquita (Michigan State University)
# Para reproducir el siguiente tutorial, presiona shift + enter
from IPython.display import YouTubeVideo
from datetime import timedelta
start=int(timedelta(hours=0, minutes=2, seconds=35).total_seconds())
end=int(timedelta(hours=0, minutes=7, seconds=19).total_seconds())
YouTubeVideo("Cvi3dByz9SE",start=start,end=end,width=640,height=360)
La siguiente es una transcripción del video.
Escribir loops es fácil. Escribir bucles también es poderoso.
Para usar un loop for
, solo escribe la primera línea. Es muy importante escribir esta línea exactamente con la sintaxis que se proporcionada. Siempre comenzamos con for
y luego creamos una variable. A menudo usamos i
como un índice que ya hemos usado antes, pero podemos llamar a esta variable como queramos. Empleamos entonces i
y luego usualmente tenemos ya sea una secuencia de números enteros que pueden producir la función range()
o incluso podemos poner en una lista. La idea es que estamos diciendo “para i
dentro del rango o una lista” y vamos a iterar sobre la lista o la función range()
. Esto también es importante: debemos terminar con dos puntos en la primera línea de nuestro loop for
. Decimos así que “para i
en el rango” hasta cierto número. Digamos 8 y :
.
Si presionamos Enter
después de esta línea, veremos que nuestro código ahora estará sangrado. Esta es otra pieza importante de sintaxis al escribir un loop for
. El código dentro del loop debe estar sangrado. Dentro del loop, podremos poner todo lo que queramos, el cielo es el límite. Nuestro código va dentro del for
y lo que hará el loop es iterar sobre los valores de i
. Ello significa que “para i
en” y el primer valor del range()
va a ser 0. Así que i
va a ser iniciado en 0. Cualquier código coloquemos aquí usando la variable i
será procesado usando i
igual a 0. Después de que el loop complete nuestro código interno, volveremos a subir e i
ahora va a ser asignado al segundo valor, que será 1 en este caso. Y luego, cuando sea 1, ejecutaremos el código interno nuevamente, volveremos a iniciar el loop de nuevo. Después i
será igual a 2 y vamos a seguir repitiendo el ciclo para todos los elementos en el rango o una lista como veremos más adelante.
Así, si ejecutamos esto, presionando shift
+ enter
, podemos ver que estamos imprimiendo i
con cada iteración. Inicialmente es 0, por lo que
se imprime 0. Luego voy a 1: imprime 1. Y llega hasta 7. En este contexto
podemos ver que es exactamente la función de range()
. Produzcamos una secuencia de enteros que podemos iterar en un loop for
.
# ¡Escribir loops `for` es fácil!
for i in range(8): # First, say which values of "i" you would like to use
# Your code using "i" goes here
print(i)
0
1
2
3
4
5
6
7
Recordemos que la función range()
es como cortar e indexar como aprendimos antes. Ésta tiene un valor inicial y un valor final y un valor de paso. Recordemos que en python el inicio es inclusivo, por
ejemplo, esto comenzará en -8, va a incrementar pero sin incluir 10 y lo hará en pasos de 2. Por ende, si decimos for i
en esta secuencia de
números, comenzará siendo i
el primer valor, y por ser inclusivo, dicho valor es -8. Por lo tanto, el primer número a imprimir con print()
debería ser -8. Iteramos por segunda ocasión. En esta ocasión, el siguiente valor de i
debería ser -6, y deberíamos obtener un -6. Probablemente el código debería ir hasta 8 pero no 10 pues el valor final es exclusivo. Así que el último número con pasos de 2 en 2 debería ser 8.
Veamos qué obtenemos para la función. En efecto, comenzamos en -8, tenemos pasos de 2 en 2 que van hasta 10, pero sin incluír al 10 mismo. Así que el último el número es 8.
Notemos este comentario aquí, el cual indica que usemos la función print()
. La razón es que, como veremos más adelante, cuando nuestro código se complique, es bueno cerciorarnos de que el loop se está ejecutando. Es bueno imprimir i
para asegurarnos de que el loop se está
procesando realmente. Así que ese es nuestro primer loop for
, el loop for
más simple.
# Recuerde, puede especificar inicio (incluido), parada (no incluido)
# y paso con rango, ¡al igual que cortar e indexar!
for i in range(-8,10,2): # inclusive of start, but not of the end
print(i) # always use print to make sure loop worked!
-8
-6
-4
-2
0
2
4
6
8