La solicitud

De Kevin Nguyen, Director de Ingeniería
Tu objetivo
Paso 1 de 3. Asigna a result el subtotal del carrito como float: lamp_price por lamp_qty más pillow_price por pillow_qty, redondeado a 2 decimales.
- Guarda un número en
resultpendiente
Paso 2 de 3. El cliente escribió el cupón como coupon. Si el código limpio (sin espacios y en mayúsculas) es igual a 'PINE10', descuenta el 10% del subtotal. Asigna a result el subtotal después de cualquier descuento, redondeado a 2 decimales.
- Guarda un número en
resultpendiente
Paso 3 de 3. El envío es 0 cuando el subtotal con descuento es 75 o más; en otro caso, 7.95. Asigna a result un string con la forma exacta Total: $181.78: la palabra Total, dos puntos, un espacio, un signo de dólar y el total final (subtotal con descuento más envío) con 2 decimales.
- Guarda un texto (str) en
resultpendiente
Paso 1 · tu código
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Paso 2 · tu código
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Paso 3 · tu código
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Lo que recibe Kevin, y por qué
La lección
Juntar los fundamentos
El código de análisis real rara vez es una línea ingeniosa. Es una cadena corta de pasos sencillos, cada uno fácil de comprobar: calcular algo, ajustarlo según una regla, presentarlo. Este Desafío final es exactamente esa cadena, y usa todo el capítulo: variables, aritmética, redondeo, limpieza de strings, condiciones y f-strings.
Paso 1: el subtotal
Una línea del carrito es precio por cantidad. Un subtotal es la suma de las líneas:
subtotal = lamp_price * lamp_qty + pillow_price * pillow_qty
Redondea una vez, al final, a dos decimales. Redondear primero cada línea puede hacer que el total se desvíe un centavo en carritos más grandes.
Paso 2: un cupón escrito por una persona
La gente escribe los códigos de cupón de todas las formas posibles: pine10, PINE10, Pine10 . Si
comparas el texto sin limpiar con "PINE10", la mayoría fallan. Normaliza primero y compara después:
code = coupon.strip().upper()
if code == "PINE10":
discounted = subtotal * 0.9
else:
discounted = subtotal
Un descuento del 10% significa que el cliente paga el 90%, así que multiplicar por 0.9 es lo mismo
que subtotal - subtotal * 0.10. Ambas son correctas; elige la que te resulte más clara.
Fíjate en la rama else. Sin ella, discounted no existiría cuando el cupón es incorrecto, y la
línea siguiente fallaría con un NameError. Todos los caminos de tu if deben dejar definidas las
variables que usarás después.
Paso 3: envío y un total legible
La regla de envío depende del importe con descuento, que es una decisión de negocio habitual: el cliente tiene que gastar $75 después de los descuentos para ganar el envío gratis. Cuando ya tienes el número final, dale formato para las personas:
total = discounted + shipping
f"Total: ${total:.2f}" # 'Total: $181.78'
El formato :.2f redondea y también rellena, así que 181.8 se mostraría como 181.80. Para los
agentes de soporte esa consistencia importa: un total que a veces muestra un decimal parece un error.
Pensar como un analista
Antes de escribir código para una regla así, anota la regla con palabras sencillas y comprueba los casos límite con quien la pidió:
- ¿El cupón se aplica antes o después del envío? (Aquí: antes, solo a los productos.)
- ¿El envío gratis se juzga antes o después del descuento? (Aquí: después.)
- ¿Qué pasa en exactamente $75? (Aquí: gratis.)
La mayoría de los «errores» en los cálculos de negocio no son fallos de Python. Son reglas que nunca se definieron del todo. Hacer estas preguntas pronto es una parte importante del trabajo.
Errores comunes
- Comparar el cupón sin limpiarlo, de modo que
" pine10 "nunca coincide. - Aplicar el envío al subtotal antes del descuento, lo que cambia quién recibe el envío gratis.
- Devolver el número en lugar del texto con formato en el último paso. La tarea pide el string
Total: $181.78, así queresultdebe ser unstr.
¡Linterna encendida!
Practicaste: variablesarithmeticstringsif elif elsef strings
- Resuelto
- Sin pistas
- Al primer intento
