Ciclos For
Como estábamos explicando el ciclo for nos permite recorrer una cantidad finita de elementos, para ello, vamos a demostrarlo con el siguiente ejemplo:
words = ['this', 'is', 'an', 'ex', 'parrot'] for word in words: print word numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] for number in numbers: print number
Aquí recalcamos lo importante de la identación ya que con ella es que decimos que la sentencia de imprimir va dentro del ciclo for
Veamos una pantalla de cómo nos quedaría uno de estos ciclos.
Pulsa en la imágen para agrandarla
Como pudimos notar su aplicación es bastante sencilla, nos sería una especie de equivalente del denominado foreach de otros lenguajes como php, aunque como siempre cada uno tiene sus particularidades.
Iterando sobre diccionarios
Otra función muy importante que debemos tener presente es como trabajar con diccionarios dentro de Python ya que es una estructura de datos muy poderosa y popular, para ello veamos cómo hacer un recorrido de una lista que contiene tuplas:
d = {'x': 1, 'y': 2, 'z': 3} for key in d: print key, 'corresponds to', d[key]
Como podemos observar para cada elemento del diccionario, podemos conseguir su valor llamando al valor índice, no es nada del otro mundo sin embargo su simplicidad hace que nos ahorremos muchos dolores de cabeza al momento de utilizar estas funcionalidades.
Pulsa en la imágen para agrandarla
Iteración numerada
Veamos un ejemplo en el cual mientras iteramos queremos también acceder al índice del elemento para así hacer un cambio dentro del mismo en caso que cumpla alguna condición en particular, veamos el código que nos dice más que una explicación:
for index, string in enumerate(strings): if 'xxx' in string: strings[index] = '[censored]'
En este caso utilizamos la función nativa enumerate, con la cual para cada string en el elemento, obtenemos su número de índice, de esta forma en el mismo ciclo de la iteración podemos evaluar una nueva condición y por lo tanto cumplir con nuestro objetivo.
Romper el ciclo
A pesar que nos suene a libro de autoayuda, romper el ciclo es algo que se puede utilizar como un recurso dentro de nuestras rutinas en Python, ya que nos permite que al evaluar una condición determinada podamos salir de la iteración y finalizar todo. Para ello utilizaremos la instrucción break.
from math import sqrt for n in range(99, 0, -1): root = sqrt(n) if root == int(root): print n break
En este ejemplo estamos evaluando la raíz más grande en valor dentro de los primeros 100 números, para ello vamos aplicando la función sqrt y con un condicional if viendo si cumple nuestra condición, al hacerlo la imprimimos y hacemos el break es decir rompemos nuestro ciclo ya que lo que sigue a continuación no nos interesa.