Parcialito 1 - 2024a - Tema 3#
Ejercicio 1: ¿Hoy hay promo?#
Cuando nuestros clientes se disponen a pagarnos una compra con su tarjeta, suele ocurrir que antes de realizar el pago quieren saber qué descuentos tendrán. Como la cartelera de descuentos es demasiado complicada de leer, queremos escribir un programa en Python que a partir de algunos datos del cliente determine rápidamente cuál será el monto final que tendrá que pagar, para que se lo podamos informar.
-
Definir una función llamada pedir_datos_de_pago() que pida ingresar los siguientes datos por teclado:
- El monto gastado por el cliente
- El banco emisor de la tarjeta del cliente
- Si la tarjeta es de crédito o de débito
- El día de la semana correspondiente al día de hoy, como un valor entre 0 y 6, en donde 0=DOMINGO, 1=LUNES, 2=MARTES, etc.
Ingrese el monto gastado por el cliente: 7899.99 Ingrese el nombre del banco emisor: BANCO PONI Indique si la tarjeta es de “CREDITO” o de “DEBITO”: CREDITO Indique qué día de la semana es hoy (entre 0 y 6): 2
Esta función deberá devolver como resultado un diccionario conteniendo estos 4 valores. Por ejemplo, para los valores ingresados anteriormente, debería devolver:
-
Ahora vamos a implementar una función que calcule el monto a pagar, analizando si es posible aplicar alguna promoción. La cartelera de promociones indica la existencia de estos 3 posibles descuentos:
-
💰 Martes de shopping: Gastando más de 20.000 con cualquier tarjeta del BANCO PONI los días martes recibís un 30% de descuento.
-
🎉 Vamos los miércoles: Todas las compras con tarjeta de crédito los días miércoles tienen un 15% de descuento.
-
🔥 Delta Jueves: Las compras realizadas con tarjetas de débito de BANCO DELTA los días jueves tienen un 20% de descuento.
Definir una función llamada calcular_monto_a_pagar( monto_gastado, banco_emisor, tipo_tarjeta, nro_dia) que aplique las promociones de la cartelera y devuelva como resultado el monto final que el cliente deberá pagar. Si no puede aplicarse ningún descuento, el monto a pagar será el monto total gastado. La especificación en DocString de la función es la siguiente (no hace falta transcribirla):
def function calcular_monto_a_pagar(monto_gastado, banco_emisor_tarjeta, tipo_tarjeta, dia_semana): """ Calcula el monto final a pagar por el cliente luego de aplicadas las promociones. Argumentos: ----------- - monto_gastado (float): Es el monto total de la compra realizada por el cliente - banco_emisor_tarjeta (string): Es el nombre del banco emisor de la tarjeta con la que pagará el cliente. Ej., “BANCO PONI”. - tipo_tarjeta (string): Toma los valores “CREDITO” o “DEBITO” según el tipo de tarjeta. - dia_semana (int): Representa qué día de la semana es el día de hoy. El valor 0 representa DOMINGO, mientras que el valor 6 representa SABADO. Devuelve: --------- El monto final a pagar (float). """
-
-
Implementar un código principal que pida los datos de pago del cliente para que sean ingresados por teclado y luego calcule el monto, aprovechando que existen las dos funciones definidas anteriormente.
Ejercicio 2: Y el ganador es…#
En la entrega de los premios Oscar 2024 compiten por el premio a la mejor película las producciones “Oppenheimer”, “Anatomía de una caída” y “Barbie”. Los miembros del jurado emiten su voto en forma anónima, y una computadora colecta todos los resultados para determinar al ganador.
-
En la primera parte de este ejercicio deberemos escribir una función llamada calcular_puntaje(lista_votos) que reciba una lista cuyos elementos representan el voto emitido por cada jurado. Por ejemplo, la lista de votos podría tener el siguiente aspecto:
La función calcular_puntaje(lista_votos) deberá entonces procesar esta lista y devolver una tupla con 3 valores enteros (c_oppen, c_anat, c_barbie) que indiquen la cantidad de votos que recibieron “Oppenheimer”, “Anatomía de una caída” y “Barbie” respectivamente.
-
Por último, escribir una función llamada determinar_ganador(lista_votos), que dada una lista como la del punto anterior determine cuál de las 3 películas mencionadas ganó el Oscar a la mejor película, devolviendo un string con el nombre de la película ganadora. Para ello, esta función deberá en particular invocar a la función calcular_puntaje(lista_votos) que construímos en el punto 1. En caso de que no haya ganador porque se produce un empate, la función deberá devolver el string “HAY EMPATE”.