Монитор цен · Шаг 1 из 4
Разобрать прайс
Олег закупает инструмент для мастерской. Поставщик каждое утро присылает прайс таблицей: артикул, название, цена, наличие. Цены в нём записаны по-бухгалтерски — «5 490,00», «1 299,90 ₽», — а наличие одни менеджеры пишут словом «да», другие — остатком на складе.
Что сделать
Разберите прайс в словарь по артикулам: название, цена в копейках, есть ли на складе.
Что приходит
tekst— прайс целиком, строкой: таблица с разделителем;, первая строка — заголовокартикул;название;цена;наличие
Что вернуть
Словарь {"A-101": {"nazvanie": "Дрель", "cena": 549000, "est": True}, …} — цена целым числом копеек или None.
Допишите функцию razobrat_snimok в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Программа читает этой функцией оба файла — вчерашний прайс и сегодняшний — и отдаёт два словаря шагу 2.
tekst = "артикул;название;цена;наличие\nA-101;Дрель Bosch;5 490,00;да\nA-102;Шуруповёрт;3 990;нет\n"
razobrat_snimok(tekst)
{'A-101': {'nazvanie': 'Дрель Bosch', 'cena': 549000, 'est': True}, 'A-102': {'nazvanie': 'Шуруповёрт', 'cena': 399000, 'est': False}}
- Разделитель столбцов —
;. Значение может быть в двойных кавычках, и тогда внутри бывает;:"Набор бит; 32 шт"— по правилам CSV. - Первая строка — заголовок, пропускается. Пустые строки и строки, где меньше четырёх столбцов или нет артикула, пропускаются. Лишние столбцы справа не мешают. Пробелы по краям значений убираются.
- Цена — в копейках, целым числом:
5 490,00→549000,19,99→1999. Пробелы между цифрами (и неразрывные), знак₽в конце убираются, дробную часть отделяет запятая или точка. Цена пустая, не число или меньше нуля —None. - Наличие —
True, если в столбце «да» (в любом регистре) или целое число больше нуля (остаток на складе); иначеFalse. - Артикул повторился — верна последняя строка. Порядок ключей — порядок, в котором артикулы впервые встретились.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.