Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2015, 14:17
ZEVA
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Apoyo con revisión de inventario

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...