feat: implement legacy shop management system and add task documentation files
CI Check / lint-and-check (push) Failing after 9s
CI Check / lint-and-check (push) Failing after 9s
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
### Задача 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))`
|
||||
Reference in New Issue
Block a user