Генераторы Python: задачи на ленивые конвейеры и закрытие ресурсов

Генератор может правильно отдавать числа и всё равно оставлять открытый файл после остановки потребителя. Эта подборка посвящена именно таким ошибкам: лишнему чтению из источника, неправильному порядку закрытия и потере исключения. Вы соберёте фильтр, разветвитель потока, скользящее среднее и цепочку закрываемых источников. Вопросы перед практикой проверяют поведение close и GeneratorExit; в задачах нужно довести конвейер до корректного завершения и при обычном исчерпании, и при сбое.

Как заниматься

13 заданий ниже можно проходить по порядку или выбирать нужную проблему. В заданиях на код есть проверка решения; в вопросах — проверка выбранного ответа. Требования к реализации и примеры приведены на страницах заданий.

Вся практика собрана в бесплатном большом задачнике по Python для разработчиков.

Смежная практика