1.5 KiB
1.5 KiB
Задача 9. Генераторы и итераторы (Генераторы, yield, Итераторы)
Напишите программу с генераторами и кастомными итераторами:
-
number_generator(start, end, step=1)— генератор, который yield'ит числа отstartдоendс шагомstep. -
fibonacci_generator(limit)— генератор чисел Фибоначчи доlimit. Используйтеyieldи циклwhile. -
Класс
RangeIterator:- В
__init__(self, start, end)сохраните границы - Метод
__iter__(self)возвращаетself - Метод
__next__(self)возвращает следующее число или поднимаетStopIteration
- В
-
filter_even(generator)— принимает генератор и возвращает новый генератор, который yield'ит только четные числа. Используйтеyield fromили цикл сyield.
Тесты:
- Создайте генератор чисел от 1 до 20 с шагом 2
- Выведите все значения через цикл
for - Создайте генератор Фибоначчи до 100
- Отфильтруйте только четные числа
- Создайте
RangeIterator(5, 10)и выведите все значения - Проверьте, что можно использовать в
list():list(number_generator(1, 10))