📜  python fibonacci 生成器 - Python (1)

📅  最后修改于: 2023-12-03 15:34:00.073000             🧑  作者: Mango

Python Fibonacci 生成器

本文介绍如何在 Python 中使用生成器生成 Fibonacci 数列。Fibonacci 数列是一个递增的数列,每个数字都是前两个数字的和。具体来说,数列中的前几个数字是 0、1、1、2、3、5、8、13、21…… 下面的代码演示如何使用生成器实现 Fibonacci 数列生成器。

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

f = fibonacci()
for i in range(10):
    print(next(f))

在上面的代码中,我们定义了一个名为 fibonacci 的生成器函数,并在其中初始化了数列中的前两个数字 ab。然后我们使用 while 循环不断生成数列中的下一个数字 a + b,并将 b 更新为 a,将 a + b 更新为 b

while 循环中,我们使用 yield 语句不断生成数列中的下一个数字 a,并将控制权返回给调用方,等待下一次调用。这样的好处是,我们可以在不破坏函数的状态和局部变量的情况下,生成无限长度的数列。当调用方不再需要新的数字时,我们可以使用 StopIteration 异常结束循环。

在使用生成器时,我们可以像在迭代器中一样,使用 next 函数获取下一个数字,也可以使用 for 循环遍历整个数列。

f = fibonacci()
for i in range(10):
    print(next(f))

这段代码将打印出 Fibonacci 数列的前 10 个数字。

总结

在这篇文章中,我们介绍了如何使用 Python 生成器生成 Fibonacci 数列。生成器是 Python 语言中的一种强大的工具,可以方便地生成无限长度的数据流,并支持惰性计算,大大节省了内存。