Saludos,
El siguiente para solicitar un pequeño apoyo con este codigo, el cual se basa en que se quiere comprar lo indicado en la lista compras (9 items), y el cual tambien posee otras otras listas de precios e inventario.
El codigo se ejecuta sin problemas, pero en la última parte lo cual vendría a ser el punto 6 (ver negrillas), veo que solo la función itera para el primer item el cual es leche, y no itera para las demás.
Es decir, para la función "calcular_factura": solo itera el argumento leche y no para los otros items que estan dentro de la lista "compras".
Voy a colocar el output y en negrillas lo que está mal del codigo.
código:
compras = {'banana' : 8, 'naranja' : 31, 'manzana' : 6, 'pollo': 6, 'carne' : 397, 'queso' : 399, 'pimenton' : 248, 'jamon' : 99, 'leche' : 243 }
cosas = 0
for renglon in compras:
print ("Ud va a comprar", compras[renglon], 'unidades de', renglon)
cosas = cosas + 1
print ('En la cesta lleva', cosas, "items")
print ("")
print ("")
precios = {"banana": 4, "manzana": 2, "naranja": 1.5, "pera": 3, 'pimenton' : 250, 'carne' : 400, 'pollo' : 420, 'jamon' : 800, 'queso' : 620, 'leche' : 100}
inventario = {"banana" : 8, "manzana" : 20, "naranja" : 32, "pera" : 15, 'pimenton' : 249, 'carne' : 398, 'pollo' : 422, 'jamon' : 100, 'queso' : 400, 'leche' : 600}
def calcular_factura(comida):
cosas = 0
total = 0
for renglon in comida:
if inventario[renglon] > 0:
print ("")
print ('1) El inventario inicial de', renglon, 'es de:', inventario[renglon],'unidades')
print ("")
total = total + (comida[renglon]) * (precios[renglon])
inventario[renglon] = inventario[renglon] - comida[renglon]
print ('2) Tras la venta, el nuevo inventario de', renglon, 'es de:', inventario[renglon], 'unidades')
print ("")
print ('3) Se compraron', comida[renglon], 'unidades de', renglon, 'a',precios[renglon],'a $ c/u', 'lo que es un total de:', comida[renglon] * precios[renglon],'$')
print ("")
total = 0
cosas = cosas + 1
total = total + (comida[renglon]) * (precios[renglon])
print ('4) Se han comprado', cosas,'rubros.', 'La cuenta a pagar va en $:', total)
print ("")
return total
factura = calcular_factura(compras)
print
print ("5) Total Acumulado a pagar $:",factura)
print ("")
print ('6) El nuevo inventario despues de las compras es:', inventario)
Output:
Ud va a comprar 243 unidades de leche
En la cesta lleva 1 items
Ud va a comprar 31 unidades de naranja
En la cesta lleva 2 items
Ud va a comprar 6 unidades de manzana
En la cesta lleva 3 items
Ud va a comprar 399 unidades de queso
En la cesta lleva 4 items
Ud va a comprar 248 unidades de pimenton
En la cesta lleva 5 items
Ud va a comprar 397 unidades de carne
En la cesta lleva 6 items
Ud va a comprar 99 unidades de jamon
En la cesta lleva 7 items
Ud va a comprar 8 unidades de banana
En la cesta lleva 8 items
Ud va a comprar 6 unidades de pollo
En la cesta lleva 9 items
1) El inventario inicial de leche es de: 600 unidades
2) Tras la venta, el nuevo inventario de leche es de: 357 unidades
3) Se compraron 243 unidades de leche a 100 a $ c/u lo que es un total de: 24300 $
4) Se han comprado 1 rubros. La cuenta a pagar va en $: 24300
5) Total Acumulado a pagar $: 0
*** 6) El nuevo inventario despues de las compras es: {'leche': 357, 'naranja': 32, 'manzana': 20, 'queso': 400, 'pimenton': 249, 'carne': 398, 'jamon': 100, 'pera': 15, 'banana': 8, 'pollo': 422}
*** En esta última parte, solo calculó el item "leche", los que tambien estan incluidos en la lista "compras" como son: banana, naranja, manzana, pollo, carne, queso, pimenton, jamon, no se ejecutaron en la iteración.
¿Que le falta a este código para realizar dicho analisis?...
Gracias de antemano...