2022/07/24

S1 Estructuras de Control

ESTRUCTURAS DE CONTROL

Cuando hablamos de un programa informático generalmente estamos hablando de una serie de instrucciones que lo componen.

, como programadores, se puede determinar qué instrucciones debemos ejecutar y el orden en cual van a ser ejecutadas.

Para ello se tiene una herramienta muy valiosa llamadas estructuras de control de flujo, o simplemente instructores de control.

Las estructuras de control ayudan a gestionar el orden de ejecución de las instrucciones.

Existen de dos tipos: estructuras de control condicionales y estructuras de control iterativas.

Estas estructuras trabajan con la ayuda de operadores relacionales.

se va a detallar estos conceptos con un cuaderno de trabajo por lo cual abrir el archivo "Estructuras de control de flujo".

Ok.

En la interfaz de Jupyter se va a abrir el archivo mencionado.

Ok, entonces Jupyter recibe con este cuaderno.

se va a ver lo que son operadores relacionales, que son todos aquellos que permiten comparar dos valores.

Tomemos por ejemplo el valor "==" que su significado es "igual que".

Como ejemplo se puede decir: 5 igual que 7.

Esto directamente es falso, 5 no es igual que 7.

Entonces, el resultado de esta pregunta va a ser False.

Distinto qué, que se representa a través del carácter !=.

Si utilizamos el mismo ejemplo: 5 diferentes de 7, pues sabemos  que es verdadero.

Entonces va a arrojar ese valor, un valor True.

Menor que, "<".

Si utilizamos 8 < 12 eso va a arrojar un valor True.

Si usamos mayor que (>) el 12 es mayor que 7, entonces esto da un valor de verdadero.

El menor o igual (<=) funciona similarmente al < con la diferencia de que si los valores son idénticos va a dar verdadero.

De forma similar funciona en >=.

Bueno, también se tiene los operadores lógicos, que esto ayudan a concatenar operadores relacionales a través de ANDs o ORs, que su traducción sería y/o.

Entonces, por ejemplo se tiene 5 == 7 and 3 == 3.

Sabemos que 5 es diferente de 7, por lo tanto la primera parte va a dar un False.

3 es igual a 3 por lo tanto eso va a dar un True, y falso y verdadero por la tabla de verdad del operador and va a dar un falso.

En el segundo ejemplo se tiene 5 <= 7, esto sabemos que es verdadero y 3 == 3 es verdadero.

Por lo tanto verdadero y verdadero va a dar un resultado total de verdadero.

Ahora, con el operador "or".

Este va a ser verdad cuando uno de los dos casos sea verdad.

Entonces, se tiene 5 == 7, eso es falso pero 3 == 3, por lo tanto falso y verdadero va a ser verdadero.

En el caso contrario donde los dos sean falsos, por ejemplo, 5 == 7, pues es falso y 3 != 3 es otro falso, por lo tanto eso va a dar False.

Ahora, pero para qué sirven los operadores lógicos.

Bueno, esto va a funcionar para las estructuras de control condicionales.

La primera de ellas es un if.

Entonces la estructura del if es if, condición, seguido del segmento de instrucciones que se van a ejecutar si la condición del if es verdadera.

Por ejemplo, se tiene if True es verdadero, es un valor booleano.

Entonces va a imprimir: es verdadero.

Si le ejecutamos efectivamente lo hace.

Bueno, pero para eso sirven las condicionales que acabamos de ver.

Entonces, se puede preguntar ¿3 es mayor que 2? pues sí, 3 es mayor que 2.

Entonces lo va a imprimir y en caso contrario ¿3 es menor que 2? Pues no, porque 3 es mayor que 2.

Entonces, simplemente se saltó esta sección.

Ahora, verán que el if al final tiene ":".

En otros lenguajes de programación se utilizan las llaves para abrir y cerrar segmentos.

En Python solamente se utilizan espacios y dentación, por ejemplo, se puede tener aquí otro elemento, print, hola, y estos dos print conforman un mismo segmento.

También se puede, después de haber acabado el if, seguir con el código normal.

Entonces, se tiene, si falso, es decir, no va a entrar, se salta la condición de afuera.

Entonces, eso imprime "afuera del if", se saltó el print que dice "dentro del if".

Además se tiene el if else donde if seguido de una condición es similar a la anterior.

Pero qué pasa si esta condición es falsa, bueno, en este caso va a ejecutar el siguiente segmento.

Aquí se tiene if mayor que 2, pues 3 es mayor que 2, entonces va a imprimir esto.

Por lo tanto no entrará al else.

Efectivamente.

Ahora, utilicemos un par de variables.

Tengamos a == 4 y b==3.

Entonces, preguntamos con el if, si a es mayor a b lo imprime.

Entonces, dentro del if se va a estar utilizando variables, que es el caso común, no se va a estar utilizando variables numéricos solos.

También se tiene la estructura "elif" que es un if compuesto.

Veámoslo con un ejemplo.

se tiene una calificación, un alumno presentó un examen y sacó un valor de 80.

Entonces se quiere que Python imprima si al alumno le fue mal, le fue regular o le fue muy bien.

Entonces, para eso se va a decir "si la calificación del alumno es menor a 50, pues se va a imprimir un mensaje de reprobado".

Entonces, va al if y hace la condicional.

Esto va a dar un false porque el alumno sacó 80, no mede 50.

Por lo tanto se salta el siguiente caso, pasa al primer elif.

Dice, ¿calificación es mayor o igual a 50? Pues en ese caso se tiene un true porque la calificación era de 80, pero hay un "y" (and), entonces hay que checar la segunda condicional, ¿calificación es menor a 90? Sí, porque 80 es menor a 90, entonces va a entrar en ese segmento de código y va a imprimir "aprobado".

El else ya no lo va a ver porque como ya ejecutó el elif se salta directamente hasta después.

Entonces, si lo ejecutamos va a decir que el alumno fue aprobado.

A parte de estas estructuras de control se tiene las estructuras de control cíclicas.

Las dos principales son while y for, que while similarmente al if, es la palabra reserva while seguido de una condición luego de un bloque de instrucciones.

La diferencia del if y el while es que el while se va a estar repitiendo hasta que la condición interna sea falsa.

se puede ver un ejemplo.

Digamos que tengamos un elevador y se tiene un número de personas actual, que se va a suponer al principio que el elevador está vacío.

Entonces hay 0 personas y la capacidad máxima del elevador es 5 personas.

Entonces, se va a decir mientras el número de personas sea menor o igual a la capacidad máxima se va a imprimir una nueva persona al elevador y se va a agregar una persona.

Entonces lo ejecutamos.

La primera iteración va a decir que hay 0 personas en el elevador, que es esta instrucción de aquí.

Después va a agregar a una persona.

Agrega una y vuelve a entrar a este ciclo while.

Va a imprimir una persona al elevador, va a agregar otra, porque todavía el número personas es menor a la capacidad máxima.

Ahí se tiene una persona y la capacidad es de 5.

Esto va a seguir iterando hasta que el 5 ya sea menor o igual a 5.

Entonces, se sale del while y ya no imprime nada, y terminó el ciclo.

El ciclo for, que es el que más se va a estar utilizando, puede iterar a través de listas, las que vimos en un video anterior, por ejemplo, se tiene la lis ta de alumManuel, Antonio, Carlos y José.

 se puede decirle "para cada alumno (ésta es una variable que estamos escogiendo ahorita) en la variable alumno (que hace referencia a la lista) imprime el alumno".

Entonces, en cada iteración esta imprimiendo primero a Manuel, porque es el alumno en turno, luego a Antonio, luego a Carlos y luego a José.

Pero no nada más se va a iterar sobre listas, también se puede iterar a través de números.

Para eso se utiliza la función range que dice: vas a crear un rango entre 0 y 10, y para cada uno de esos elementos vas a imprimir la n.

Entonces para la primera iteración genera un 0, genera un 1, 2, 3, 4, y así hasta el 10.

Esa es la explicación de estructuras de control.

Visitar la siguiente página para que conozcas más de estructuras de control y repasar.



No hay comentarios:

Publicar un comentario

S4 Cierre

Cierre Semana 4 Muchos de los problemas actuales a los que se enfrenta un científico de datos involucran el manejo de grandes cantidades de ...