自定义范围迭代器
Coddy Python 迭代器 课程的第 10 课,共 13 课。
挑战
简单创建一个名为 StepRange 的自定义迭代器类,用于生成步长自定义的数字序列。这个迭代器应模拟 Python 内置 range() 函数的行为,但步长设置更加灵活。
StepRange 类应:
- 在构造函数中接收
start、stop和step参数 - 实现
__iter__()方法,使其返回迭代器对象本身 - 实现
__next__()方法,以生成序列中的下一个值 - 处理正步长和负步长
- 在序列耗尽时引发
StopIteration异常
实现 StepRange 类后,使用输入值创建它的一个实例,并将生成的每个数字打印在新的一行上。
将提供以下输入:
- 三个以空格分隔的整数,分别表示
start、stop和step
亲手试试
# 读取输入
start, stop, step = map(int, input().split())
class StepRange:
def __init__(self, start, stop, step):
self.start = start
self.stop = stop
self.step = step
self.current = start
def __iter__(self):
return self
def __next__(self):
# TODO: 实现 __next__() 方法
pass
# 创建一个 StepRange 实例
step_range = StepRange(start, stop, step)
# TODO: 遍历 StepRange 并打印每个值
# 记得将每个值打印在新的一行Python 迭代器中的所有课
自己练习: Python 在线编译器