Curso de introducción a la programación con python

Autor: Luis Fernando Apáez Álvarez

Clase 8: Bucle for

Comenzaremos la clase trabajandando con el bucle for. Para ello trabajaremos con la idea de "pertenencia" en teoría de conjuntos.

Por ejemplo, si consideramos el conjunto $A=\{a,b,1,2\}$, es claro que el 1 es un elemento del conjunto $A$. La anterior idea se expresa como $1\in A$, donde el símbolo "$\in$" se lee como "está". Así $1\in A$ se puede leer como "el uno está en el conjunto $A$". De tal manera podemos decir que $1\in A, 2\in A, a\in A, b\in A$, sin embargo es un hecho que $3\notin A$: "el tres no está en el conjunto $A$". Ahora bien, en la clase 6 vimos brevemente cómo trabajar con listas en Python. Por ejemplo podemos crear la lista

Sabemos que $a\in A$, luego, podemos utilizar

para ver si la cadena de texto "a" es un elemento de la lista A. Si sí lo es, entonces se nos arrojará el valor lógico True, si "a" no es un elemento de A entonces se nos arrojará False. Notemos que "a" in A puede leerse como "a está en A".

La palabra in en español significa, en este contexto, "en/está". De tal manera tenemos que

  1. El símbolo $\in$ significa "en, está o pertenece". Se maneja como un símbolo dentro de la teoría de conjuntos.
  2. El operador in se puede interpretar como "en o está" dentro del lenguaje Python.

y ambas ideas coinciden.

Por otro lado, el bucle for presenta la siguiente estructura básica

Nuevamente, de acuerdo a su sintaxis, la interpretación de cómo funciona el bucle for es muy intuitiva. Puede decirse que el código anterior se lee como: para la variable <variable> en el conjunto <serie de valores>, realizamos las siguientes operaciones. Por ejemplo

el cual actúa como: para la variable x en la lista A imprime x. Donde la variable del bucle for "recorre" todos los elementos de la lista A.

Antes de pasar a más ejemplos observemos el diagrama de flujo del bucle for

Luego, del ejemplo que vimos podemos considerar el diagrama

Es por ello que nuestro primer for actúo sobre todos los elementos de la lista A pues, en nuestro caso, se imprime la variable x cuando x = "a", luego se pregunta si ya hemos alcanzado todos los elementos de la lista, como la respuesta es que no, continuamos ahora con x = "b" y así consecutivamente hasta alcanzar el último elemento de la lista. En otras palabras


111Captura-2.PNG


Donde el bucle finalizará una vez que se imprima el valor de x cuando x = 2, el cual es el último elemento de la lista. De tal manera, la variable dentro del bucle for recorrerá todos los elementos de la serie de valores que ocupemos.

Antes de continuar veamos una alternativa al código del ejemplo anterior:

Notemos ahora que la impresión ha sido horizontal en vez de vertical, lo cual se ha conseguido dado que hemos agregado end="" como parámetro del print().

Por otro lado, podemos trabajar con conjuntos de número enteros y considerarlos así para la <serie de valores> del bucle for, lo cual conseguimos usando range( , ). Por ejemplo range(0,5) crea un conjunto de números que comienza en el 0, después va el 1, el 2, el 3 y termina en el 4. Entonces, la segunda entrada de range( , ) indica el límite de valor el cual podremos alcanzar en dicho conjunto, sin incluir dicho valor en el conjunto. En otras palabra, si $x\in\mathbb{Z}^{+}$, el intervalo $0\leq x<5$ representa el rango de valores que puede tomar $x$; o en código tendríamos que for x in range(0,5).

o también

Podemos agregar una entrada más a range( , ) la cual indicara el valor del incremento que se realice, por ejemplo

Cuando deseamos implementar un bucle for no siempre queremos que la variable del bucle sea empleada dentro de las operaciones del mismo. Por ejemplo, puede que sólo nos interese repetir una acción.

Lo anterior puede reemplazarse como

y alternativamente

Donde colocamos la variable _ que se conoce como variable anónima, consiguiendo así sólo repetir la acción que deseabamos sin incluir una variable al bucle.

Socialmedia.PNG