首页
学习
活动
专区
圈层
工具
发布
31 篇文章

Python基础语法-函数-迭代器生成斐波那契数列

自定义迭代器

除了使用内置的迭代器类型之外,Python还允许自定义迭代器类型。要创建一个自定义迭代器,可以定义一个类,并在类中实现__iter____next__方法。例如,可以创建一个生成斐波那契数列的迭代器:

代码语言:javascript
复制
class Fibonacci:
    def __init__(self):
        self.prev = 0
        self.curr = 1

    def __iter__(self):
        return self

    def __next__(self):
        value = self.curr
        self.curr += self.prev
        self.prev = value
        return value

在这个例子中,Fibonacci类定义了__iter____next__方法。__iter__方法返回迭代器对象本身,而__next__方法生成斐波那契数列的下一个值。可以使用这个迭代器来生成斐波那契数列的前10个数:

代码语言:javascript
复制
class Fibonacci:
    def __init__(self):
        self.prev = 0
        self.curr = 1

    def __iter__(self):
        return self

    def __next__(self):
        value = self.curr
        self.curr += self.prev
        self.prev = value
        return value

fib = Fibonacci()
for i in range(10):
    print(next(fib))

输出结果为:

代码语言:javascript
复制
Copy code1
1
2
3
5
8
13
21
34
55

在这个例子中,创建了一个Fibonacci迭代器对象,并使用next函数逐个访问它的元素。由于Fibonacci迭代器是无限的,因此可以使用range函数控制循环的次数。

下一篇
举报
领券