skillbig
@skillbig
Новичок Python

Что не так делаю в коде?

Есть словарь кодов товаров

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},
    ],
}

# Рассчитать на какую сумму лежит каждого товара на складе
# например для ламп

lamps_cost = store[goods['Лампа']][0]['quantity'] * store[goods['Лампа']][0]['price']
# или проще (/сложнее ?)
lamp_code = goods['Лампа']
lamps_item = store[lamp_code][0]
lamps_quantity = lamps_item['quantity']
lamps_price = lamps_item['price']
lamps_cost = lamps_quantity * lamps_price
print('Лампа -', lamps_quantity, 'шт, стоимость', lamps_cost, 'руб')

# Вывести стоимость каждого товара на складе: один раз распечать сколько всего столов, стульев и т.д. на складе
# Формат строки <товар> - <кол-во> шт, стоимость <общая стоимость> руб

# для знающих циклы: БЕЗ циклов. Да, с переменными; да, неэффективно; да, копипаста.

table_cost1 = store[goods['Стол']][0]['quantity'] * store[goods['Стол']][0]['price']
table_code = goods['Стол']
table_item = store[table_code][0]
table_quantity = table_item['quantity']
table_price = table_item['price']
table_cost1 = table_quantity * table_price
print('Стол -', table_quantity, 'шт, стоимость', table_cost1, 'руб')

sofa_cost = store[goods['Диван']][0]['quantity'] * store[goods['Диван']][0]['price']
sofa_code = goods['Диван']
sofa_item = store[sofa_code][0]
sofa_quantity = sofa_item['quantity']
sofa_price = sofa_item['price']
sofa_cost = sofa_quantity * sofa_price
print('Диван -', sofa_quantity, 'шт, стоимость', sofa_cost, 'руб')

chair_cost = store[goods['Стул']][0]['quantity'] * store[goods['Стул']][0]['price']
chair_code = goods['Стул']
chair_item = store[chair_code][0]
chair_quantity = chair_item['quantity']
chair_price = chair_item['price']
chair_cost = chair_quantity * chair_price
print('Стул -', chair_quantity, 'шт, стоимость', chair_cost, 'руб')
  • Вопрос задан
  • 1009 просмотров
Решения вопроса 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
Не хватает тех же строк, только вместо [0] еще [1] и [2] там, где есть соответствующие индексы в массиве.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nonsensical
@nonsensical
Ключи в словаре должны быть уникальными.
В вашем коде(словарь 'store') они идентичные('quantity', 'price').
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы