La solicitud

De Megan Collins, Directora de Ventas
Tu objetivo
Asigna a result el costo de envío (un float) para el subtotal y el segment dados: 0.0 para el segmento 'business'; en otro caso, 7.95 si el subtotal es menor que 50, 4.95 si es al menos 50 y menor que 75, y 0.0 si es 75 o más.
- Guarda un número en
resultpendiente
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 Megan, y por qué
La lección
Verdadero y Falso
Un booleano (bool) tiene solo dos valores: True y False. Los obtienes de las comparaciones:
62.40 >= 50 # True
"consumer" == "business" # False
| operador | significado |
|---|---|
== |
igual a |
!= |
distinto de |
< <= |
menor que, menor o igual que |
> >= |
mayor que, mayor o igual que |
Las comparaciones de strings son exactas y distinguen mayúsculas de minúsculas: "Business" == "business" es False. Por eso verás a menudo .lower() antes de una comparación sobre datos
escritos por personas.
Combinar condiciones
and es verdadero solo cuando ambos lados lo son. or es verdadero cuando al menos un lado lo es.
not invierte un valor.
subtotal = 62.40
subtotal >= 50 and subtotal < 75 # True
segment == "business" or subtotal >= 75
not (subtotal < 50) # True
Python también permite encadenar una comprobación de rango, que se lee como en matemáticas:
50 <= subtotal < 75.
if, elif, else
Una sentencia if ejecuta un bloque de código solo cuando su condición es verdadera. El bloque son
las líneas con sangría debajo, y la línea anterior termina con dos puntos:
if subtotal >= 75:
shipping = 0.0
elif subtotal >= 50:
shipping = 4.95
else:
shipping = 7.95
Python revisa las condiciones de arriba abajo y se detiene en la primera verdadera. Por eso la
segunda condición puede decir simplemente subtotal >= 50: si el carrito fuera de 75 o más, la
primera rama ya se habría ejecutado. elif (else if, «si no, si») puede repetirse tantas veces como
necesites, y else recoge todo lo que queda. Ambos son opcionales.
La sangría no es decoración en Python; define qué líneas pertenecen a la rama. Usa cuatro espacios de forma consistente.
Ordena tus reglas de la más específica
Las reglas de negocio suelen tener excepciones («las cuentas de empresa siempre envían gratis»). Pon primero las excepciones; si no, una regla general puede quedarse con el caso antes de llegar a la excepción:
if segment == "business" or subtotal >= 75:
shipping = 0.0
elif subtotal >= 50:
shipping = 4.95
else:
shipping = 7.95
Cuidado con los límites
«Desde $50 hasta $75» es donde viven los errores. ¿Los $75 exactos están en el tramo medio o son
gratis? La política dice gratis desde $75, así que la comprobación es >= 75, no > 75. Cuando leas
una regla, pregunta siempre qué pasa justo en el borde, y prueba un valor exactamente ahí.
Errores comunes
- Escribir
=en lugar de==en una condición.if segment = "business":es un error de sintaxis. - Olvidar los dos puntos al final de las líneas
if,elifoelse. - Equivocar el orden de los tramos, por ejemplo comprobar
subtotal >= 50antes quesubtotal >= 75, de modo que un carrito de $120 pague $4.95. - Escribir
if segment == "business" or "enterprise":. El lado derecho es un string no vacío, que siempre cuenta como verdadero. Repite la comparación:segment == "business" or segment == "enterprise".
¡Linterna encendida!
Practicaste: booleanscomparisonif elif elseand or
- Resuelto
- Sin pistas
- Al primer intento
