Трекер привычек · Шаг 4 из 4
Календарь по неделям
Число серии — это хорошо, а картинка лучше: семь строк по дням недели, столбец на неделю, квадратик там, где отмечено, точка — где пропущено. Так рисует свою активность GitHub, и одного взгляда хватает, чтобы увидеть, что по выходным привычка проседает.
Что сделать
Нарисуйте текстом календарь привычки за последние недели: строка на день недели, столбец на неделю.
Что приходит
dni— дни с отметками,datetime.datesegodnya— какое сегодня числоnedel— сколько недель показать, от 1
Что вернуть
Строку из семи строк «Пн»…«Вс»: «■» — отмечено, «·» — пропущено, пробел — день ещё не наступил; пробелы в конце строк убраны.
Допишите функцию kalendar в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Программа зовёт kalendar на команду «календарь <привычка> [недель]» и печатает то, что вы вернули. Решите шаг — и вместо голых чисел серий станет видно, в какие дни недели привычка проседает.
Сегодня суббота, 31 октября; отмечены 27, 28, 30 и 31 октября; две недели. Последний столбец — неделя с понедельника 26-го, первый — с 19-го:
Пн · ·
Вт · ■
Ср · ■
Чт · ·
Пт · ■
Сб · ■
Вс ·
Воскресенье 1 ноября ещё не наступило — в конце строки «Вс» пусто.
from datetime import date dni = [date(2026, 10, 27), date(2026, 10, 28), date(2026, 10, 30), date(2026, 10, 31)]
kalendar(dni, date(2026, 10, 31), 2)
'Пн · ·\nВт · ■\nСр · ■\nЧт · ·\nПт · ■\nСб · ■\nВс ·'
Недели — с понедельника по воскресенье. Последний столбец — неделя, в которой segodnya; перед ним ещё nedel − 1 недель, раньше — левее.
Строка дня недели: подпись (Пн, Вт, Ср, Чт, Пт, Сб, Вс), пробел, потом клетки по неделям через пробел:
■— день есть вdni;·— день прошёл (или сегодня), отметки нет;- пробел — день позже
segodnya.
У каждой строки пробелы в конце убраны (rstrip). Строки соединены переводом строки, в конце его нет.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.