[MÚSICA] [MÚSICA] Practiquemos la evaluación de expresiones lógicas en Python usando Spyder. Iniciemos con unos ejemplos. Para los próximos ejercicios vamos a tomar tres variables enteras; a, b y c, con valor 45, 30 y 10 respectivamente. Veamos nuestro primer ejemplo. Antes de ejecutar las operaciones, he definido las variables a, b y c en la terminal para poder efectuar las operaciones. Ahora sí nos queda a más c es mayor o igual que b. Este nos da true. Antes de aplicar el operador relacional, se realiza la suma, que da 55. Y luego si se compara 55 mayor o igual que 30, del cual obtenemos el true. Veamos el segundo ejercicio. Nos dice b menos c menor que a menos b. De nuevo, se realizarán primero las restas antes de aplicar la operación. Veamos el resultado en Spyder. Escribimos b menos c menor que a menos b. Al ejecutarlo, vemos que nos da como resultado false, you que b menos c es igual a 20, y a menos b es igual a 15, y 20 menor que 15 es falso. Sigamos con el tercero. Tenemos a mayor que b and b mayor que c or b menor que c and a mayor que b. Operaremos primero los paréntesis para finalmente aplicar el or. Para el primero tenemos que a mayor que b es true, y b mayor que c es true, así true and true nos da true. Notemos que con esto you podríamos concluir que toda la expresión da true. Teniendo en cuenta las reglas de la álgebra booleana, que nos dice que true por X, que es cualquier expresión, da true. Igual veamos el segundo paréntesis. B menor que c da false. Acá también podríamos concluir que toda la expresión del paréntesis es falsa, you que false and X da false por álgebra booleana. De todas formas revisamos la segunda expresión del paréntesis, a mayor que b, que da true. Pero como you dijimos, quedaría false and true, que da false. La expresión completa se reduce a true or false, que como you esperábamos, por el álgebra booleana, nos da true. Comprobemos en Spyder nuestra expresión. A mayor que b and b mayor que c, cerramos paréntesis, or b menor que c and a mayor que b. Y damos enter. Y vemos que efectivamente nos da true tal y como lo esperábamos. Veamos el cuarto, a por b menor que a por b dividido c. Acá de nuevo realizamos antes las operaciones aritméticas, que dan como resultado 1350 y 135, para tener 1350 menor que 135, lo cual es false. Veamos en Spyder el resultado. Anotamos a por b menor que a por b dividido c. Y vemos que efectivamente obtenemos false. Veamos ahora el último ejercicio. A mayor que c and b. Vemos que la segunda parte de la expresión es solo la variable b. Observemos lo que pasa al ejecutar la expresión en Spyder. Escribimos, a mayor que c and b. Lo ejecutamos y vemos que nos da 30. Para entender el porqué de este resultado, es necesario entender cómo evalúa Python los condicionales. Veamos cómo se maneja el and y el or en Python. Iniciemos con el and. Tenemos X and Y. Se evalúa primero X. Si al evaluar X nos da false, se retorna inmediatamente el valor de X. Mientras que si da true, se evalúa Y y se retorna su valor. En el caso del or, se evalúa nuevamente primero la expresión de la izquierda. Si X nos da true, se retorna el valor de X, y si X es false, se evalúa Y y se retorna su valor. Python no tendrá en cuenta si X o Y son expresiones relacionales, simplemente recibe cualquier expresión o valor, y retorna según las reglas que acabamos de ver. Apliquemos ahora lo visto al caso que teníamos, a mayor que c and b. Empezamos evaluando por la izquierda, a mayor que c. Como 45 es mayor que 10, la expresión da true, por lo que se pasa a evaluar la segunda expresión, en este caso, b, y se retorna su valor, es decir, 30. Es importante tener siempre en cuenta la forma en que se evalúan estas expresiones, para ver que estemos obteniendo los resultados esperados. [SONIDO]