📝 Задания: генераторы

⚡ Кратко

  1. Генератор чисел, кратных 5.
  2. Генератор квадратов от 1 до n.
  3. Бесконечный генератор Фибоначчи.

Задание 1. Фильтр чисел

Создайте генератор, который принимает список чисел и выдаёт только числа, кратные 5.

numbers = [12, 15, 33, 40, 55, 62, 75, 83, 90]

Задание 2. Квадраты чисел

Создайте генератор, который принимает число n и генерирует квадраты чисел от 1 до n включительно.

Задание 3. Бесконечный генератор Фибоначчи

Создайте генератор fibonacci(), который бесконечно генерирует числа Фибоначчи. Выведите первые 10.

Задание 4. Генератор уникальных элементов

Создайте генератор, который принимает список и выдаёт только уникальные значения, сохраняя порядок появления.

data = [3, 1, 2, 3, 4, 1, 5, 2, 6, 7, 5, 8]

Задание 5. yield from

Напишите функцию flatten(data), которая «раскрывает» вложенные списки любой глубины, используя yield from.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Что такое декоратор?

Вопрос 2

Что делает yield?

Вопрос 3

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 4

Зачем использовать f-strings в современном Python?

Вопрос 5

Когда полезен ранний возврат из функции?

Вопрос 6

Что делает аннотация типа в Python?

Вопрос 7

Как лучше обрабатывать ожидаемую ошибку преобразования?