не могу найти ошибку в расчете общей стоимости позиций для каждого товара на складе
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 руб.