Трекер привычек · Шаг 3 из 4
Прочитать журнал
Отметки копятся в текстовом файле zhurnal.txt, строка на отметку: 2026-10-31;зарядка. Файл обычный — его можно открыть блокнотом, дописать забытое или оставить себе заметку после решётки. Поэтому читать его надо терпеливо: лишние пробелы, пустые строки и одна испорченная строка не должны стоить человеку всей истории.
Что сделать
Прочитайте журнал отметок и разложите дни по привычкам; кривые строки молча пропустите.
Что приходит
tekst— содержимоеzhurnal.txtцеликом, строкой
Что вернуть
Словарь «привычка → список дней» (datetime.date, по возрастанию, без повторов); привычки — по алфавиту.
Допишите функцию prochitat_zhurnal в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Программа читает zhurnal.txt этой функцией перед сериями и календарём. Решите шаг — и отметки будут переживать перезапуск, даже если журнал правили руками.
Три строки: «2026-10-30;зарядка», «2026-10-31;зарядка», «2026-10-31;бег». Выйдет {'бег': [date(2026, 10, 31)], 'зарядка': [date(2026, 10, 30), date(2026, 10, 31)]} — бег первым, по алфавиту.
prochitat_zhurnal("2026-10-30;зарядка\n2026-10-31;зарядка\n2026-10-31;бег\n")
{'бег': [datetime.date(2026, 10, 31)], 'зарядка': [datetime.date(2026, 10, 30), datetime.date(2026, 10, 31)]}
Каждая строка журнала — дата;привычка, дата — ГГГГ-ММ-ДД.
- Пробелы по краям строки и вокруг частей не мешают.
- Привычка — строчными, слова через один пробел (как в шаге 1).
- Пустые строки и строки, начинающиеся с
#, пропускаются. - Строка без
;, с пустой привычкой или с датой, которой нет (2026-13-01), пропускается молча.
В ответе — обычный словарь: ключи — привычки по алфавиту, значения — списки дат по возрастанию, каждая дата один раз. Пустой журнал — пустой словарь.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.