Реализуйте функцию-генератор my_range
, которая имитирует поведение встроенной функции range
в Python. Функция должна поддерживать три варианта вызова:
my_range(stop)
— генерирует последовательность чисел от 0
до (stop - 1)
с шагом 1.my_range(start, stop)
— генерирует последовательность чисел от start
до (stop - 1)
с шагом 1
.my_range(start, stop, step)
— генерирует последовательность чисел от start
до (stop - 1)
с шагом step
.Функция должна корректно обрабатывать отрицательные значения step
и выбрасывать исключение ValueError
, если step
равен 0
.
Для проверки корректности работы функции, результат вызова my_range
будет преобразовываться в список с помощью list()
.
Пример 1:
Входные данные: stop = 5
Выход: [0,1,2,3,4]
Пример 2:
Входные данные: start = 1, stop = 10, step = 2
Выход: [1,3,5,7,9]
Пример 3:
Входные данные: start = 10, stop = 1, step = -2
Выход: [10,8,6,4,2]
Требования:
yield
).step
равен 0
, функция должна выбрасывать исключение ValueError
.my_range
должен иметь возможность преобразовываться в список для проверки.Примечания:
range
.Отметьте свой прогресс
Сообщить об ошибке в тексте