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

Трекер привычек · Шаг 4 из 4

Календарь по неделям

Число серии — это хорошо, а картинка лучше: семь строк по дням недели, столбец на неделю, квадратик там, где отмечено, точка — где пропущено. Так рисует свою активность GitHub, и одного взгляда хватает, чтобы увидеть, что по выходным привычка проседает.

Что сделать

Нарисуйте текстом календарь привычки за последние недели: строка на день недели, столбец на неделю.

Что приходит

  • dni — дни с отметками, datetime.date

  • segodnya — какое сегодня число

  • 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Вс ·'
Ctrl+Enter — проверить

Обсуждение

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

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