La solicitud

De Jennifer Castillo, Líder del Equipo de Soporte
Tu objetivo
Asigna a result el total del carrito como float: la suma de cantidad por precio para cada posición de quantities y prices, redondeada a 2 decimales.
- 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 Jennifer, y por qué
La lección
Repetir trabajo con for
Un bucle for ejecuta el mismo bloque de código una vez por cada elemento de una lista:
prices = [49.99, 129.00, 12.50]
for price in prices:
print(price)
En cada pasada, la variable del bucle (price) contiene el siguiente elemento. Las líneas con sangría
son el cuerpo del bucle. Cuando la lista se acaba, el bucle termina y Python continúa con la primera
línea sin sangría.
El patrón del acumulador
El bucle más común en el código de análisis suma cosas. Creas una variable antes del bucle y la actualizas en cada pasada:
total = 0
for price in prices:
total += price # same as total = total + price
Después del bucle, total vale 191.49. El mismo patrón cuenta cosas (count += 1), encuentra el
valor más grande hasta el momento o construye una lista nueva con append.
Recorrer dos listas a la vez
Aquí las cantidades y los precios están en listas separadas que coinciden por posición. zip las
empareja:
quantities = [2, 1, 4]
prices = [49.99, 129.00, 12.50]
list(zip(quantities, prices))
# [(2, 49.99), (1, 129.0), (4, 12.5)]
Puedes desempaquetar cada pareja directamente en dos variables del bucle:
total = 0
for qty, price in zip(quantities, prices):
total += qty * price
Se lee casi como en español: para cada cantidad y precio, suma el total de la línea. Si las listas
tienen longitudes distintas, zip se detiene en la más corta sin dar error, así que asegúrate de que
tus datos coincidan antes de fiarte del resultado.
Cuando necesitas la posición
enumerate te da el índice junto a cada elemento, lo que ayuda cuando quieres etiquetar líneas:
for i, price in enumerate(prices, start=1):
print(f"Line {i}: ${price:.2f}")
Evita el estilo antiguo for i in range(len(prices)): con prices[i] dentro. Funciona, pero zip y
enumerate son más claros y es más difícil equivocarse con ellos.
No olvides las funciones integradas
Cuando solo necesitas la suma simple de una lista, sum(prices) es más sencillo que un bucle. Los
bucles se ganan su sitio cuando cada paso hace algo de trabajo primero, como multiplicar por una
cantidad o saltarse filas erróneas.
Errores comunes
- Poner
total = 0dentro del bucle. Se reinicia en cada pasada, así que acabas con solo la última línea. - Olvidar la sangría del cuerpo. Python lanza
IndentationErroro, peor aún, ejecuta la línea una vez cuando el bucle ya terminó. - Redondear dentro del bucle. Redondea el total final una sola vez.
Una mirada hacia delante
En pandas rara vez escribirás este bucle: (df["quantity"] * df["unit_price"]).sum() hace lo mismo
para una columna entera de una vez, y mucho más rápido. Pero saber qué hace esa línea por dentro la
hace mucho más fácil de depurar.
¡Linterna encendida!
Practicaste: for loopaccumulatorzip
- Resuelto
- Sin pistas
- Al primer intento
