[MÚSICA] [MÚSICA] En esta parte del módulo, estudiaremos la instrucción iterativa For In. Empecemos con un ejemplo. Recorrer un conjunto de valores, por ejemplo los caracteres de una cadena, es tan común en programación, que Python nos ofrece una instrucción alternativa lo al y más simple, el ciclo for in. Veamos este ejemplo. Cada vez que el ciclo itera, se toma un carácter de la cadena en orden secuencial. Se asigna a la variable cada carácter y se imprime su valor en pantalla. El ciclo continua hasta que no queden más caracteres en la cadena. Aquí vemos el resultado de la ejecución, carácter por carácter, en una línea separada, simple ¿verdad? Y la buena noticia, es que no solo funciona con strings, podemos usar la instrucción for in, para recorrer cualquier estructura secuencial, como las listas que veremos más adelante en este mismo módulo. Veamos entonces la sintaxis general de la instrucción for in. Para cada elemento en una secuencia o serie de valores, el cual queda guardado en las variables que definamos, se ejecutan esas acciones. No hay límite en la cantidad de instrucciones que componen el bloque de un for in. Tampoco no hay ninguna restricción sobre el nombre que queramos darle a esta variable. Lo importante es que le pongamos un nombre, que sea significativo con respecto a los valores que vamos a extraer de esta serie. Veamos como queda nuestra función ocurrencias de un carácter, que implementamos en la presentación pasada utilizando un ciclo while. Ahora vamos a utilizar la instrucción for in. Empezamos declarando nuestra variable ocurrencias, como lo hicimos en el ejemplo anterior. Reemplazamos el while por el ciclo for in. ¿Cómo funciona? Para cada carácter dentro de nuestra cadena, vamos a recorrer todos los caracteres uno por uno. Comparamos el carácter extraido, con el carácter que entra por parámetro. Si son iguales, incrementamos el número de ocurrencias. Ese ciclo se va a repetir para cada uno de los caracteres en la cadena y terminará cuando you no haya más caracteres para analizar. Retornamos al final la cantidad de ocurrencias. Veamos otro caso en el que podamos reemplazar fácilmente un while por un for in. Algunos ciclos se ejecutan un número de veces fijo y conocidos a priori. Por ejemplo en la función que calcula la sumatoria, desde i igual a 1 hasta 1000 de i. Sabemos que tenemos que repetir el ciclo, es decir iterar exactamente 1000 veces. Repasemos las instrucciones de estas funciones. Declaramos una variable resultado, en la cual iremos acumulando la sumatoria. Arrancamos con i igual a 1, siguiendo el patrón de la sumatoria. Mientras i sea menor o igual a 1000, que es el valor máximo el cual queremos alcanzar, vamos guardando en la variable resultado lo que you teníamos, más esta i. Incrementamos la i, para ir avanzando en el ciclo, de forma tal que cuando i tenga el valor 1000 más 1 o sea uno más que 1000, se suspende el ciclo y al final retornamos el resultado. Esos ciclos, se construyen siguiendo un patrón, que es una especie de frase construida del lenguaje de programación. Veamos cuál es este patrón. A una variable i, le asignamos un valor inicial, mientras esta variable sea menor o igual a un valor final, ejecutamos una serie de acciones y al final incrementamos siempre nuestra variable antes de volver a iterar. En este patrón, la variable i, suele denominarse índice de ciclo, nos sirve a la vez para recorrer elementos dentro de una secuencia o serie de valores y controlar igualmente la cantidad de iteraciones y la condición de parada del ciclo. Veamos como se implementa este mismo patrón, pero utilizando la instrucción for in. Estos dos patrones son cien por ciento equivalentes. Para i desde un valor inicial hasta un valor final, ejecute un conjunto de acciones. Esto lo podemos formular con la instrucción for in, para i en un rango de valores, que va desde un valor inicial hasta un valor final, ejecute una serie de acciones. Range, es una función de Python, que nos permite generar una secuencia de valores, entre un valor inicial y un valor final, sin incluirlo dentro de la secuencia. Es por esto. que si conocemos a priori este valor máximo hasta el cual queremos iterar, debemos generar el range utilizando el valor máximo más 1. Veamos por último la implementación de nuestra sumatoria, utilizando la instrucción for in. Arrancamos con nuestra variable resultado inicializada en 0. Para i en el rango 1, 1000 más 1, siempre debemos poner el valor máximo más 1, lo que hacemos es sumar al resultado, la variable i. Así vamos acumulando el resultado todos los valores posibles de i, desde 1 hasta 1000. Y al final retornamos el resultado de la sumatoria. [MÚSICA] [MÚSICA]