Menu
CoddyTech

自定义范围迭代器

Coddy Python 迭代器 课程的第 10 课,共 13 课。

challenge icon

挑战

简单

创建一个名为 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 在线编译器