Ciclos for en python

Ciclo for en python

El ciclo for ejecuta un bloque de instrucciones repetidamente hasta que la condición en la instrucción for ya no es válida, lo cual ocurre, por lo general, cuando se ha terminado de recorrer todos los elementos del objeto iterable.

Ciclo a través de un iterable

En python un objeto iterable se refiere a cualquier objeto sobre el que se pueda avanzar elemento por elemento a lo largo de él. Entre estos elementos están las listas, las cadenas de caracteres, los tuples y diccionarios.

Sintaxis del ciclo for

En la siguiente figura se muestra la sintaxis del ciclo for.

Variable es el nombre de una variable que va a servir para ir contando el número de iteraciones que se realizan en el ciclo for sobre el elemento iterable. Hay que recordar que en python el índice inicial de los objetos iterables comienza en 0, Es decir el primer elemento de un objeto iterable es 0, no 1.

En la siguiente figura se ha creado una lista y esta almacenada en una variable de nombre autos. Se muestra que el primer elemento de la lista ‘Ford’ tiene índice 0, el siguiente elemento ‘Chevrolet’ tiene índice 1, y así sucesivamente.

Objetos Iterables

En la siguiente figura se muestran algunos objetos que pueden ser utilizados como objetos iterables.

A continuación se van a mostrar ejemplos de ciclos for en cada uno de estos objetos.

Ciclo for en cadena de caracteres (string)

En la siguiente figura se muestra un código que se ha introducido en la venta del IDE de python. Se ha creado una cadena de caracteres: ‘cabeza’ y se ha almacenado en una variable de nombre cadena.

Se ha creado una variable de nombre caracter para ir recorriendo los elementos de la cadena de caracteres.

La sintaxis es

>>> for variable in String:

>>> Bloque de Instrucciones

Aquí la variable es carácter, y la cadena es ‘cabeza’ la cual esta representada por la variable de nombre cadena.

El numero de ciclos se determina por el numero de caracteres que contenga la cadena, en cada ciclo la variable caracter tomara un elemento de la cadena (un carácter).

Ciclo for en listas (list)

La sintaxis es

>>> for variable in Lista:

>>> Bloque de Instrucciones

El número de ciclos se determina por el número de elementos que tenga la lista. En cada ciclo variable será un elemento de la lista.

En el siguiente ejemplo se crea una lista y se almacena en la variable materias. En el ciclo for, x representa cada elemento de la lista. En cada ciclo la variable x toma un elemento de la lista y lo imprime. El ciclo for termina cuando se ha alcanzado el último elemento de la lista.

Ciclo for en Tuples

La sintaxis es

>>> for variable in Tuple:

>>> Bloque de Instrucciones

Un tuple es un objeto en python parecido a una lista, sin embargo, los elementos de una tupla no pueden modificarse, son inmutables y en lugar de estar entre corchetes están encerrados en paréntesis.

Por ejemplo

Charlie=(’Brown’, 8, ‘Estudiante’)

Constituye un Tuple de 3 elementos. Podemos recorrer los elementos de una tupla tal y como lo hicimos con los elementos de una lista. Notar que aquí colocamos como variable t, puede ser cualquier nombre de variable que deseemos utilizar.

Ciclo for en Diccionarios (Dictionary)

La sintaxis es

>>> for variable in Dictionary:

>>> Bloque de Instrucciones

Un diccionario es un objeto de python que está integrado por una secuencia de elementos, donde cada elemento está integrado por una clave (key) y un valor separados por dos puntos (:). Los elementos del diccionario están encerrados entre llaves ({}).

Ejemplo

Capital={’Mexico’: ‘Cidad de Mexico’, ‘Venezuela’: ‘Caracas’, ‘España’ : ‘Madrid’}

En este caso solamente se ha impreso el valor de la clave (key). Si queremos obtener tanto la clave como su valor podemos utilizar el siguiente código.

Capital={‘Mexico’: ‘Cd de Mexico’,

‘Venezuela’:’Caracas’, ‘España’:’Madrid’}

for c in Capital:

print(c,»– «, Capital[c])

Hay que notar el uso de los corchetes para indicar los valores de la capital. Capital[c].

Mexico — Cd de Mexico

Venezuela — Caracas

España — Madrid

También se puede utilizar el método ítems aplicado al diccionario y devuelve los elemento ( key y valor)

Capital={‘Mexico’: ‘Cd de Mexico’,

‘Venezuela’:’Caracas’, ‘España’:’Madrid’}

for p,c in Capital.items():

print(p,»– «, c)

Y da igual resultado que la instrucción anterior.

Mexico — Cd de Mexico

Venezuela — Caracas

España — Madrid

Ciclo for por indices

La sintaxis es

>>> for indice in objeto_iterable:

>>> Bloque de Instrucciones

En lugar de acceder al elemento accedemos a su índice. En el siguiente ejemplo creamos una lista y la almacenamos en una variable frutas. Esta lista tiene 5 elementos, desde el índice 0 hasta 4.

Cada fruta está asociada a un índice.

Frutas[0] = mango

frutas[1] = patilla

frutas[2] = cambur

frutas[3] = piña

frutas[4] = melon

Si queremos imprimir el elemento y su índice podemos utilizar el siguiente código.

for f in range(len(frutas)):

fruta=frutas[f]

print(f, fruta)

Y obtenemos lo siguiente: el índice y el elemento de la lista.

0 mango

1 patilla

2 cambur

3 piña

4 melon

Ciclo for in range()

La sintaxis es

>>> for variable in range():

>>> Bloque de Instrucciones

La función range genera una lista de números enteros y su sintaxis se muestra a continuación.

range (start, stop, [step]) genera una lista de números enteros que comienza en start y termina en stop-1. step es el paso, y por defecto es 1.

Se puede indicar solo el valor final (stop) y la lista comienza en 0 y termina en stop-1.

range(9) = 0, 1, 2, 3, 4, 5, 6, 7, 8,

Como se ve incluye el cero, pero no incluye el nueve

Range(1, 9) = 1, 2, 3, 4, 5, 6, 7, 8

Inicia en 1 y termina en 8 (9-1)

for i in range(9):

print(i)

Da como resultado la siguiente secuencia de valores.

0

1

2

3

4

5

6

7

8

Podemos utilizar un ciclo for con range para hacer una sumatoria de de una secuencia de números.

En este ejemplo vamos a realizar la suma de los 100 primeros números naturales 1 hasta el 100

n=100

suma=0

for i in range(1, n+1):

suma +=i

Print(suma)

El resultado es:

5050

Si queremos efectuar el producto de los 100 primeros números naturales.

n=100

prod=1

for i in range(1, n+1):

prod *=i

print(prod)

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

El numero es muy grande, sin embargo python lo muestra.

probemos con 10

n=10

prod=1

for i in range(1, n+1):

prod *=i

Print(prod)

El resultado es un número mas pequeño.

3628800

Hasta aquí hemos visto como utilizar ciclos for con diversos objetos iterables.