[MÚSICA] [MÚSICA] Hola de nuevo. Hoy vamos a concentrarnos en un último tipo de condicionales. Estos son conocidos como condicionales anidados y modela situaciones en las cuales tenemos una instrucción condicional dentro del cuerpo de otra instrucción condicional. Veamos un ejemplo de nuevamente de varias soluciones. Nuestra función recibe por parámetro un número entero y devuelve verdadero si es un entero positivo de un dígito, y falso de lo contrario. La primera solución usa los condicionales anidados, es decir, primero se verifica que el número sea mayor que cero y en el cuerpo de este condicional hay un if else, que verifica si el número es menor a diez, es decir, si tiene un solo dígito, y le asigna a la variable respuesta el valor correspondiente. Si el número no es positivo, también le asigna respuesta el valor correspondiente con la definición del problema. La segunda alternativa utiliza en bloque if sin un else, esto es posible, primero, porque asumimos que la respuesta es falsa y solo cambiaremos el valor si se cumple la condición definida, condición que construimos con una expresión compuesta usando un and. Es decir, verificamos que el número x sea positivo y de un solo dígito, en este caso, cambiaremos el valor de respuesta a True. La última versión aprovecha que estamos retornando el valor resultado de evaluar la expresión lógica que definimos en la versión anterior. Es decir, si la expresión es verdadera retornamos True, y si no, False. Hagamos una corta pausa con esta pregunta. Ahora que sabemos cómo escribir casos en Phyton usando los diferentes tipos de condicionales, vamos a hablar de los supuestos lógicos, y veremos lo útiles que pueden ser ayudandonos a escribir condiciones más simples y claras. Primero veamos, ¿qué son los opuestos lógicos? ¿Recuerdan los seis operadores relacionales de los que hablamos? Bien, cada uno tiene su opuesto. Por ejemplo, el opuesto de la igualadad es diferente y viceversa, y cada uno de los operadores de orden también tienen su opuesto. Por ejemplo, el opuesto de menor es mayor o igual, mientras que el opuesto de menor a igual es estrictamente mayor. Se preguntarán, por qué introdujimos este tema en este momento. Bien, algunas veces expresar el opuesto de un caso es más sencillo. Veamos. Nuestra función recibe la edad de una persona y decide si puede o no tener licencia de conducción, en Colombia le llamamos pase, y la edad mínima para obtenerlo es 16. Así la primera versión pregunta, si la edad no es mayor a 16, entonces, no se puede obtener la licencia. La segunda aplica el opuesto lógico, es decir, pregunta si la edad es menor de 16. Noten que hasta decirlo en español es mucho más sencillo que la condición de la primera versión. Estoy mostrando estas dos soluciones por completitud, pero en realidad espero no ver funciones con varios returns por las razones que you estudiamos. La tercera versión asume que se tiene la edad para tener el pase y por lo tanto la respuesta se inicializa en True, y solo se modifica si la condición se cumple, es decir, si la edad es menor a 16. La cuarta hace el supuesto contrario. Es decir, asume que no tiene la edad inicializando una variable en False, y modificando su valor si la edad es mayor o igual a 16, volvimos a aplicar lo opuesto lógico. Y por último, retornamos directamente la evaluación de la expresión. Conclusión, cada vez nuestros programas pueden usar más estrategias diferentes para resolver un mismo problema. [MÚSICA]