|Refactoriza el cálculo de descuentosMedio
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 10:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Refactoriza el cálculo de descuentos

Medio100 pts·Refactorización

Enunciado

Implementa la función calculate_order_discount que calcula el precio final de un pedido aplicando descuentos según el tipo de membresía del cliente.

Reglas de negocio:

MembresíaSubtotal ≥ 100Subtotal < 100
"gold"20% descuento10% descuento
"silver"10% descuento5% descuento
otrossin descuentosin descuento

Retorna -1 si el subtotal del pedido es menor a 10.

Tipos

# Cada item es un dict con keys "price" y "quantity"
# items: list[dict]

Comportamiento esperado

calculate_order_discount([{"price": 50, "quantity": 2}], "gold")    # 80
calculate_order_discount([{"price": 30, "quantity": 2}], "gold")    # 54
calculate_order_discount([{"price": 50, "quantity": 2}], "silver")  # 90
calculate_order_discount([{"price": 20, "quantity": 2}], "silver")  # 38
calculate_order_discount([{"price": 5,  "quantity": 1}], "gold")    # -1
calculate_order_discount([{"price": 50, "quantity": 1}], "bronze")  # 50

Requisitos de calidad

Al enviar, tu código será evaluado también en estos criterios:

  • Sin números mágicos — extrae los porcentajes y umbrales como constantes con nombres descriptivos
  • Sin variables de una sola letra — usa nombres que expresen la intención (items, subtotal, discount, etc.)
  • Constantes en UPPER_SNAKE_CASE — al menos una constante nombrada así (ej: MIN_ORDER_AMOUNT)
  • Al menos una función auxiliar — extrae lógica en funciones con responsabilidad única
Restriccionesexpand_more
  • Dificultad: Medio
  • Completa todos los test cases para obtener los 100 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar print() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Refactoriza el cálculo de descuentos — Medio | Coding Challenges · Coding Challenges