не могу найти ошибку в расчете общей стоимости позиций для каждого товара на складе

 goods = {
'Лампа': '12345',
'Стол': '23456',
'Диван': '34567',
'Стул': '45678',
}
store = {
'12345': [
{'quantity': 27, 'price': 42},
],
'23456': [
{'quantity': 22, 'price': 510},
{'quantity': 32, 'price': 520},
],
'34567': [
{'quantity': 2, 'price': 1200},
{'quantity': 1, 'price': 1150},
],
'45678': [
{'quantity': 50, 'price': 100},
{'quantity': 12, 'price': 95},
{'quantity': 43, 'price': 97},
],
}
for name_prod, code in goods.items(): 
  quantity = 0  
  price = 0  
  cost = 0  
  for goods in store[code]: 
    quantity += goods['quantity'] 
    price = goods['price'] 
    cost += quantity * price 
  print(name_prod, " - ", quantity, " шт., ", 'стоимость', cost, " руб.")

Ответы (1 шт):

Автор решения: CrazyElf

Потому что кол-во товара по текущей цене и общее кол-во товара нужно хранить в разных переменных. Заодно для единообразия я и общую стоимость переименовал:

for name_prod, code in goods.items(): 
  total_quantity = 0  
  total_price = 0  
  for goods in store[code]: 
    quantity = goods['quantity'] 
    price = goods['price'] 
    total_quantity += quantity
    total_price += quantity * price
  print(name_prod, " - ", total_quantity, " шт., ", 'стоимость', total_price, " руб.")

Вывод:

Лампа  -  27  шт.,  стоимость 1134  руб.
Стол  -  54  шт.,  стоимость 27860  руб.
Диван  -  3  шт.,  стоимость 3550  руб.
Стул  -  105  шт.,  стоимость 10311  руб.
→ Ссылка