请使用yield和递归函数,写一个斐波那契数列的生成器
时间: 2024-10-18 21:18:36 浏览: 21
使用python求斐波那契数列中第n个数的值示例代码
5星 · 资源好评率100%
当然可以。你可以使用递归和生成器的概念来创建一个计算斐波那契数列的生成器。斐波那契数列的定义是:第一个和第二个数都是1,从第三个数开始,每个数都是前两个数之和。以下是生成器版本的斐波那契数列:
```python
def fibonacci_generator(n=0):
a, b = 0, 1
while True:
yield a
if n > 0:
n -= 1
a, b = b, a + b
# 使用生成器时,需要通过for循环或next()函数逐次获取斐波那契数
# 获取前10个斐波那契数
for i, fib in enumerate(fibonacci_generator(), 1):
if i == 10:
break
print(f"第{i}项:{fib}")
# 如果你想生成无限序列,只需不传入n
# 需要注意的是,如果你没有限制条件,可能会导致内存溢出
# for fib in fibonacci_generator():
# print(fib)
```
每次调用`yield a`都会暂停函数执行,直到下一次迭代时再继续从上一次离开的地方继续执行,这样就避免了一次性存储所有数值,节省了内存。
阅读全文