Стандартная библиотека · 17 из 17
Съёмки через неделю
Детская школа танцев договорилась с фотостудией о съёмках: «по вторникам и четвергам через неделю, с первого сентября до конца ноября, кроме праздников». Администратор студии вписывает такие договоры в календарь руками и каждый раз путается, какая неделя «та», если договор начался в середине недели. Нужна функция, которая превращает правило в список дат.
Что сделать
Превратите правило договора в список дат съёмок: нужные дни недели, каждую N-ю неделю, без праздников, с первой даты по последнюю.
Что приходит
nachaloиkonec— первая и последняя дата договора, строками вида"2026-09-01"; обе включительноdni— список дней недели:"пн","вт","ср","чт","пт","сб","вс"kazhdye— каждую какую неделю: 1 — каждую, 2 — через однуprazdniki— список дат, когда не снимают, теми же строками
Что вернуть
Список дат съёмок строками "ГГГГ-ММ-ДД" — по порядку.
Допишите функцию daty_semok в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
С 1 по 15 сентября 2026 года, по вторникам и пятницам, каждую неделю, без праздников. 1 сентября — вторник: ["2026-09-01", "2026-09-04", "2026-09-08", "2026-09-11", "2026-09-15"].
daty_semok("2026-09-01", "2026-09-15", ["вт", "пт"], 1, [])
['2026-09-01', '2026-09-04', '2026-09-08', '2026-09-11', '2026-09-15']
Неделя — с понедельника по воскресенье. Недели считаются от той, в которую попала дата nachalo: она — нулевая, следующая — первая и так далее. Снимают в недели с номером, делящимся на kazhdye: при 2 — нулевая, вторая, четвёртая… Договор начался в четверг — понедельник и вторник его нулевой недели уже прошли, первые съёмки по ним — в следующей подходящей неделе. Дата съёмки — между nachalo и konec включительно, её день недели — в dni, и её нет в prazdniki. Если nachalo позже konec — пустой список. Даты в ответе — строками, как date.isoformat().
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.