Ciclo for

  • Un ciclo for es una estructura de control que permite repetir código un número de veces.
  • Los ciclos deben ser finitos.
  • Puede haber ciclos infinitos, usualmente son generados por errores de programación en el código.
  • Generalmente se utilizan para iterar ciertas veces un código o para iterar los índices de listas, etc.

¿Cómo se usan los ciclos for?

Escribimos la palabra for seguida de un iterador (puede tener cualquier nombre), seguida de in, y finalmente escribimos los datos sobre los que itera:


In [4]:
for i in range (3):
    print(i)


0
1
2

Nota: range(init,end,n) nos da una lista de valores desde init hasta end (sin contener a end) espaciado por n valores. Por default, init es 0, por o que en el ejemplo range(3) son los números de 0 a 2.

Usos del ciclo for:

Pensemos que tenemos un robot que quiere avanzar de manera lineal sobre una mesa hasta la orilla y que sabemos cuantos pasos puede dar hasta antes de caer.

Dado que al robot tenemos que darle instrucciones como "avanza un paso", podemos aplicar un ciclo for:

El pseudocódigo sería: [avanzaremos mientras que el número de pasos esté en el rango posible de pasos que podemos dar (antes del límite que conocemos, es decir, antes de caer)]

límite de pasos = 10
para cada posible paso si estás en el rango (o sea, antes de caer):
    da un paso

Entonces en python escribiríamos:


In [6]:
lim_pasos = 10
contador_de_pasos = 0
for i in range(lim_pasos):
    print("Da un paso")
    contador_de_pasos = contador_de_pasos + 1

print("El número de pasos que diste es: ", contador_de_pasos)


Da un paso
Da un paso
Da un paso
Da un paso
Da un paso
Da un paso
Da un paso
Da un paso
Da un paso
Da un paso
('El n\xc3\xbamero de pasos que diste es: ', 10)

Pensemos que tenemos una lista de muchos elementos. Otro uso de un for, es para iterar y acceder a todos los elementos del for sin tener que hacerlo de uno por uno.


In [15]:
lista = []
for i in range(100):
    lista.append(i+1)
print lista

for i in range(len(lista)):
    lista[i] = lista[i] / (i+1)
print lista


[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

Ejercicios:

  • Crear una lista vacía y usar un for para agregar el número del índice más uno al cuadrado.
  • A partir de la lista dada, crear otra e iterar sobre cada elemento de la primera para asignar el mismo elemento, es decir, al final obtendrás dos listas con exactamente los mismos valores.