Войти Создать аккаунт

Монитор цен · Шаг 2 из 4

Что изменилось за день

В прайсе пятьсот строк, и глазами два прайса не сравнить. Олегу нужен список того, что поменялось между вчера и сегодня: новые товары, пропавшие, другая цена, появился или кончился на складе. Решать, о чём из этого сообщать, будет следующий шаг.

Что сделать

Сравните вчерашний и сегодняшний прайс и перечислите все изменения по артикулам.

Что приходит

  • staryy и novyy — вчерашний и сегодняшний прайс, словари, как их вернул шаг 1

Что вернуть

Список событий-словарей {"artikul": …, "chto": …, "bylo": …, "stalo": …} по порядку артикулов; изменений нет — [].

Допишите функцию izmeneniya в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В проекте

Программа передаёт события шагу 3 — он решит, о чём сообщать. С ключом --vse она печатает их все, таблицей.

Пример

Вчера дрель A-101 стоила 5 490 ₽ и шуруповёрта A-102 не было на складе, сегодня дрель — 4 790 ₽, шуруповёрт есть и появился новый набор бит A-104. Событий три: цена A-101 (549000 → 479000), наличие A-102 (False → True) и новинка A-104 с её ценой.

Тот же пример кодом
Перед вызовом
staryy = {"A-101": {"nazvanie": "Дрель", "cena": 549000, "est": True},
          "A-102": {"nazvanie": "Шуруповёрт", "cena": 399000, "est": False}}
novyy = {"A-101": {"nazvanie": "Дрель", "cena": 479000, "est": True},
         "A-102": {"nazvanie": "Шуруповёрт", "cena": 399000, "est": True},
         "A-104": {"nazvanie": "Набор бит", "cena": 129990, "est": True}}
Вызов
izmeneniya(staryy, novyy)
Вернуть
[{'artikul': 'A-101', 'chto': 'cena', 'bylo': 549000, 'stalo': 479000}, {'artikul': 'A-102', 'chto': 'nalichie', 'bylo': False, 'stalo': True}, {'artikul': 'A-104', 'chto': 'novyy', 'bylo': None, 'stalo': 129990}]
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.