Монитор цен · Шаг 4 из 4
Текст уведомления
Олег читает сводку с телефона по дороге в мастерскую. Ему не нужны артикулы и копейки строкой 479000 — ему нужно «Дрель Bosch: 4 790 ₽ (было 5 490 ₽, на 13% дешевле)», сгруппированное по смыслу.
Что сделать
Соберите из уведомлений короткий текст по разделам: подешевело, снова в наличии, новинки.
Что приходит
uvedomleniya— список уведомлений, как его вернул шаг 3snimok— сегодняшний прайс словарём из шага 1: из него берутся названия и нынешние цены
Что вернуть
Строку текста по образцу из «Подробных правил»; уведомлений нет — пустую строку "".
Допишите функцию tekst_uvedomleniya в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Программа печатает этот текст и с ключом --v записывает его в файл — его можно отправить письмом или в мессенджер.
Дрель подешевела с 5 490 до 4 790 ₽, а набор бит появился за 1 299,90 ₽ — выйдет четыре строки: Подешевело:, Дрель Bosch: 4 790 ₽ (было 5 490 ₽, на 13% дешевле), Новинки:, Набор бит: 1 299,90 ₽.
uvedomleniya = [{"artikul": "A-101", "chto": "cena", "bylo": 549000, "stalo": 479000, "povod": "podeshevel"},
{"artikul": "A-104", "chto": "novyy", "bylo": None, "stalo": 129990, "povod": "novinka"}]
snimok = {"A-101": {"nazvanie": "Дрель Bosch", "cena": 479000, "est": True},
"A-104": {"nazvanie": "Набор бит", "cena": 129990, "est": True}}
tekst_uvedomleniya(uvedomleniya, snimok)
'Подешевело:\n Дрель Bosch: 4 790 ₽ (было 5 490 ₽, на 13% дешевле)\nНовинки:\n Набор бит: 1 299,90 ₽'
Образец:
Подешевело:
Дрель Bosch: 4 790 ₽ (было 5 490 ₽, на 13% дешевле)
Снова в наличии:
Шуруповёрт: 3 990 ₽
Новинки:
Набор бит; 32 шт: 1 299,90 ₽
- Разделы — всегда в этом порядке:
Подешевело:(поводpodeshevel),Снова в наличии:(snova_v_nalichii),Новинки:(novinka). Раздел без уведомлений не пишется вовсе. Внутри раздела — в порядке списка. - Строка товара — два пробела, название из
snimok, двоеточие с пробелом и нынешняя цена изsnimok. Артикула нет вsnimokили название пустое — вместо названия артикул. ЦенаNone— словацена не указанавместо цены. - У подешевевшего после цены:
(было <старая цена>, на N% дешевле); старая цена —byloуведомления. N — падение в процентах от старой цены, до целого, половина — вверх: с 800 до 700 ₽ — 12,5% →13. - Цена — рубли с пробелом между тысячами, копейки после запятой, только если они не нулевые, двумя цифрами, и знак
₽:479000→4 790 ₽,129990→1 299,90 ₽,5→0,05 ₽. - Строки соединены
\n, в конце перевода строки нет.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.