Files
Igor-kr/Final control/9/TASK.md
T
Dmitry Belan ee235ece10
CI Check / lint-and-check (push) Failing after 9s
feat: implement legacy shop management system and add task documentation files
2026-07-18 12:25:32 +03:00

1.5 KiB
Raw Blame History

Задача 9. Генераторы и итераторы (Генераторы, yield, Итераторы)

Напишите программу с генераторами и кастомными итераторами:

  1. number_generator(start, end, step=1) — генератор, который yield'ит числа от start до end с шагом step.

  2. fibonacci_generator(limit) — генератор чисел Фибоначчи до limit. Используйте yield и цикл while.

  3. Класс RangeIterator:

    • В __init__(self, start, end) сохраните границы
    • Метод __iter__(self) возвращает self
    • Метод __next__(self) возвращает следующее число или поднимает StopIteration
  4. filter_even(generator) — принимает генератор и возвращает новый генератор, который yield'ит только четные числа. Используйте yield from или цикл с yield.

Тесты:

  1. Создайте генератор чисел от 1 до 20 с шагом 2
  2. Выведите все значения через цикл for
  3. Создайте генератор Фибоначчи до 100
  4. Отфильтруйте только четные числа
  5. Создайте RangeIterator(5, 10) и выведите все значения
  6. Проверьте, что можно использовать в list(): list(number_generator(1, 10))