[MÚSICA] [MÚSICA] Realicemos un ejercicio con algunos condicionales más complejos para seguir reforzando el tema. Nos piden crear un programa que permita calcular el valor del pasaje aéreo desde la ciudad de Bogotá hasta Tokio. El valor dependerá de una tarifa básica, la compañia aérea elegida para el viaje, la temporada, la edad del pasajero y si es o no estudiante. Para calcular el precio, nos dicen que tenemos que tener en cuenta que la compañía ALAS incremente el valor de sus pasajes en un 30% en alta temporada, mientras que la compañía VOLAR lo incrementa solo en 20%. Ambas compañías descuentan el 50% si el pasajero es menor de edad. Además, la compañía VOLAR tiene un recargo de 100.000 pesos para los pasajeros mayores de 60 años para cubrir el seguro de vida. Los estudiantes que viajan por ALAS y que no son menores de edad tienen un descuento de 10% en temporada baja. Y la tarifa básica Bogotá-Tokio reglamentaria es de 5.000.000 de pesos. Para organizar toda esta información y poder llegar a una solución adecuada, revisemos primero las entradas, salidas y restricciones o consideraciones a tener en cuenta para poder diseñar la solución y posteriormente escribir nuestro código. Empecemos con las entradas y salidas. La salida es bastante clara y será el precio final del pasaje. Este valor será un entero, you que estamos trabajando en pesos colombianos y no podemos tener decimales. Ahora sobre las entradas. La compañía, que puede ser ALAS o VOLAR, la podemos manejar como un string, que será el nombre de alguna de las compañías. La del pasajero claramente la manejaremos como un entero, you que no contamos edades por fracciones. Para conocer la temporada, que puede ser alta o baja, podríamos usar un valor booleano donde true nos indique es temporada alta y false lo contrario, es decir, que es baja. Lo mismo haremos para representar si el pasajero es estudiante o no, un booleano que nos indique true en caso de ser estudiante y false si no lo es. Ahora, en cuanto a las consideraciones y restricciones a tener en cuenta para calcular el valor del pasaje. Desglosando un poco más la información que nos fue brindada, podemos llegar a lo siguiente. ALAS incremente 30% en temporada alta, VOLAR incrementa 20% en temporada alta. 50% de descuento para los menores, independiente de la compañía. VOLAR tiene un recargo de 100.000 pesos para los mayores de 60 años por concepto del seguro. ALAS tiene descuento del 10% para estudiantes mayores de edad en temporada baja. Y nuestra tarifa básica es de 5.000.000 de pesos. Estas consideraciones son las que se convertirán en las condiciones que tendremos en nuestro código para poder calcular la tarifa final. Empezamos con la asignatura de nuestra función, def calcular_precio_pasaje, que recibe como parámetros temporada_alta, compañía, edad y estudiante y nos retorna un entero. Ahora, lo primero que necesitamos será una variable donde almacenar el precio, que pesará en la tarifa base de 5.000.000. Nos queda entonces, precio igual a 5.000.000. Crearé también una variable en la cual ir sumando o restando los porcentajes de aumentos o descuentos a los que hubiese lugar para poder aplicarlos sobre el precio base luego de determinar cuáles serían dichos aumentos o descuentos. Llamaré a la variable variaciones y empezará con valor 0. Nos queda variaciones igual a 0. De paso, usaré otra variable booleana para saber si es necesario aplicar el aumento en pesos por seguro de vida, que iniciará en false. seguro igual a false. Ahora sí empezamos a evaluar las diferentes condiciones que tenemos que considerar. Lo mejor es revisar primero cuál es la condición que más casos abarca para empezar por ahí y luego entrar en mayor detalle. Como podemos ver, de nuestras condiciones, la compañía aérea está presente en casi todas, de forma que sería recomendable iniciar revisando por cuál de las compañías se piensa viajar. Continuemos con el código. Creamos entonces nuestros condicionales. if compañía == ALAS y de una vez el if compañía == VOLAR Empecemos por el caso de ALAS. El enunciado nos dice que para ALAS, si es temporada alta, hay un aumento del 30%. Es decir, a las variaciones tendremos que sumarle un 0.3. Nos queda una condición más, if temporada_alta, entonces a las variaciones += 0.3. Recordemos que dejar solo temporada_alta es equivalente a escribir temporada_alta == true. Si seguimos revisando las condiciones que tienen que ver con ALAS, notamos que para la temporada baja existe un descuento si se estudiante y mayor de edad. Incluiré entonces un else para la condición que habíamos hecho de la temporada. Para el caso en que sea temporada baja y así, dentro de este revisar si es mayor de edad y estudiante para aplicar el descuento del 10%. Nos queda if edad >= 18 and estudiante, entonces a las variaciones, -= 0.1. Seguimos con el caso de VOLAR. Para esta compañía hay aumento del 20% en caso de viajar en temporada alta. Así que nos queda un condicional similar al que hicimos en el caso de ALAS. if temporada_alta, entonces variaciones += 0.2 esta vez. Para VOLAR no ocurre nada en temporada baja, así que no necesitamos else. Lo que sí tenemos que tener en cuenta también es el seguro para mayores de 60. Así que tenemos que evaluar, en este caso, if edad mayor que 60, entonces el seguro será igual a true, para marcar que será necesario adicionar los 100.000 pesos del seguro a nuestra tarifa adicional. you con esto habremos cubierto los casos en que se relacionaba la compañía. Nos queda mirar entonces el descuento para menores de edad, que es independiente de la compañía, que nos queda if edad < 18, entonces variaciones -= 0.5 Esto con el fin de aplicar el 50% de descuento. you con esto podríamos aplicar las variaciones al precio base multiplicándolo por 1 más las variaciones a las que haya lugar. Nos queda entonces, precio *= 1 + variaciones para calcular entonces en cuánto queda la tarifa usando la misma variable precio. Por último revisamos si fue necesario el seguro para sumar el recargo si es necesario. Preguntamos, if seguro, entonces precio += 100.000 pesos. Y retornamos el precio. Nos queda, return el precio el cual aprovecharé de una vez para aproximar al entero más cercano, por lo que estamos redondeando el resultado. Nos quedaría round del precio. Con esto, habremos completado nuestra función. Incluí ahora un corto programa principal para poder hacer uso de nuestra función. Corramos el archivo y probemos algunos casos. Ahora, en temporada alta por ALAS, para alguien de 20 años que es estudiante, vemos que el pasaje vale 6.500.000 pesos. Lo ejecutaré de nuevo, ver que probemos con otro caso. Ahora probemos si es temporada baja, por VOLAR, para alguien de 30 años que no es estudiante. En este caso nos dice que el pasaje tiene un valor de 5.000.000 de pesos. Probemos uno más. De nuevo, corro el programa y en este caso, veamos, por ejemplo, en temporada alta, por la compañía ALAS, para una persona de 12 años, que es estudiante. Entonces, en este caso, la tarifa del pasaje será de 4.000.000 de pesos. Pueden implementar ustedes mismos el programa y continuar haciendo más pruebas, además de verificar las que acabamos de hacer aquí. Es importante recordar que puede haber más formas de llegar a una solución correcta a parte de la que revisamos en este video, a pesar de ser la sugerida. Como con todos los problemas, vale la pena siempre preguntarse luego de si hay formas más claras o mejores de plantear una solución, siempre y cuando esta sea correcta. [MÚSICA]