for…
1
for…
¿Se sabe cuántas veces se desea repetir un conjunto de acciones?
Entonces se pueden encerrar en un bloque for...
¿Se desea recorrer los elementos de una secuencia (una lista o cadena),
en el orden en que aparecen en dicha secuencia?
Entonces se pueden encerrar en un bloque for...
2
Función range(…)
Si lo que se necesita es repetir una serie de sentencias, la función
interna range() es lo que sirve. generará 10 enteros que
se asignarán a i, uno a la
vez
variable
for i in range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3
Si paso no se
indica, por
Parámetros de range defecto lo
considera 1
range(valor inicial, valor final NO incluido, paso)
Último menor
así: range(2, 8) al límite
generará: [2, 3, 4, 5, 6, 7]
Si los enteros van de menor
a mayor, el último es menor
pero: range(2, 8, 2) al límite.
Último menor Si los enteros van de mayor
generará: [2, 4, 6] al límite a menor, el último es mayor
al límite.
y: range(8, 2, -1)
Último mayor
generará: [8, 7, 6, 5, 4, 3] al límite
4
Función range(…)
El límite final indicado nunca es parte de la lista generada.
Es posible hacer que el rango comience en otro número ó especificar un
incremento diferente (incluso negativo). Este incremento se llama paso (step).
Forma de
solicitar los
valores uno al
lado del otro
5
Observaciones
El bucle for ... in utiliza una variable índice a la que se van asignando los
diferentes valores del rango.
En muchos ejemplos se utiliza la variable i, pero sólo porque también
en matemáticas se suele utilizar la letra i para indicar el nombre de su
variable índice. Se puede usar cualquier nombre de variable válido.
6
Prohibiciones
Que el índice sea una variable cualquiera no da libertad absoluta para hacer
con ella lo que queramos.
En un bucle, las variables de índice sólo deben usarse para consultar su valor,
nunca para asignarles uno nuevo.
Por ejemplo, este fragmento de programa es incorrecto:
i contendrá los valores generados
for i in range(0, 5): por range, NO se debe asignar
luego otro valor ya que pierde los
i=i+2 del range
7
Prohibiciones
Los bucles pueden anidarse, también hay que tener mucho cuidado
con sus índices.
Un error frecuente es utilizar el mismo índice para dos bucles anidados.
Por ejemplo, estos bucles anidados están mal:
for i in range(0, 5): E l segundo i modificará los
for i in range(0, 3): valores generados por el range
del primer i
print(i)
8