Mi Diario Python

Ciclo o bucle for in en python

Ciclo o bucle for in en python

Hoy vamos a ver de que trata el ciclo for in en python. En la sección Tutorial Python iré dejando todas las entradas que resulten necesarias para iniciarse con este maravilloso lenguaje de programación.

La sentencia for .. in es una sentencia de bucle (también llamada ciclo) que se repite en una secuencia de objetos, es decir, a través de cada elemento de una secuencia (listas o cadenas), en el orden con el que aparecen en la secuencia.

Vamos a ver algunos ejemplos para que nos quede bien claro. 

Listas

»»»#Midiendo cadenas de una lista:
»»»palabras = ["hola", "python", "pythondiario"]
»»»for i in palabras:
. . .     print i, len(i)
. . .
hola 4
python 6
pythondiario 12

Otro ejemplo:
#! /usr/bin/env python
# -*- coding: utf-8 -*-

for i in range (1, 5):
    print i
else:
    print "El ciclo se termino"

En este programa estamos imprimiendo una secuencia de números. El rango (1, 5) nos da una secuencia [1, 2, 3, 4], el bucle itera sobre esta secuencia y a continuación ejecuta el bloque de instrucciones para cada valor de i (en este caso print i).
Recordar que la parte else es opcional, en este caso se pone para ver el final del ciclo.

Cadenas

#! /usr/bin/env python
# -*- coding: utf-8 -*-

for letra in "pythondiario":
    print "Letra actual: ", letra

En este programa iteramos sobre cada letra de "pythondiario" e imprimimos la letra luego de la cadena "Letra acual: ".

Ejemplo de ciclo for anidado: #Un for dentro de otro

#! /usr/bin/env python
# -*- coding: utf-8 -*-

for num in range (10,20):  #para iterar entre 10 y 20
   for i in range (2,num): #para iterar sobre los factores de num
      if num%i == 0:      #determina el primer factor
         j=num/i          #calcula el factor del segundo
         print '%d es igual a: %d * %d' % (num,i,j)
         break #termina el ciclo del segundo for y vuelve al primero para seguir
iterando
     else:                  # parte else del bucle
      print num, 'es un numero primo'

Voy a explicar el primer numero a iterar:
En el primer for, num va a tener como primer valor el numero 10.
num = 10 #Iterando en el rango (10, 20)
Luego el programa salta al segundo for, donde el primer valor de i va a ser 2.
i = 2 #en este caso donde num = 10, i va a valer(2, 3, 4, 5, 6, 7, 8, 9).
Luego viene el condicional if que nos dice: si el resto de dividir num entre i (10 % 2) == 0 (en este caso lo es) va a guardar en j el resultado de dividir 10 / 2.
Si el resto de num % i (10 % 2) es distinto de 0, el condicional if es falso por lo tanto vuelve al segundo for para convertir a i en 3, y así hasta llegar a num. Si ningún numero del segundo for hace cumplir la condición, termina el segundo for y salta al else para decirnos que es un numero primo. Ahora el programa salta al primer for para convertir num en 11 y asi hasta el 19.

Puede resultar un poco engorroso las primeras veces que utilizamos los for anidados, pero una ves que agarremos la onda no vamos a para de usarlos 🙂

No olviden dejar sus comentarios ante cualquier duda o sugerencia sobre bucle for python...

Salir de la versión móvil