python写一个斐波那契数列的无限生成器
时间: 2023-11-07 14:03:59 浏览: 43
当然可以,下面是一个使用Python编写的斐波那契数列无限生成器,可以一直生成斐波那契数列的下一个数:
```python
def fibonacci():
a, b = 0, 1
while True:
yield b
a, b = b, a + b
```
这个无限生成器定义了两个变量`a`和`b`,开始时它们的值分别为`0`和`1`。在循环中,使用`yield`语句返回当前的`b`值,然后更新`a`和`b`的值,使`a`等于原来的`b`,`b`等于原来的`a+b`。这样就可以不断生成下一个斐波那契数列的数了。
使用这个无限生成器的方法非常简单,只需要在代码中调用它即可。例如,下面的代码会生成前10个斐波那契数列的数:
```python
f = fibonacci()
for i in range(10):
print(next(f))
```
输出结果为:
```
1
1
2
3
5
8
13
21
34
55
```
通过不断调用`next()`函数,我们可以一直生成下一个斐波那契数列的数,直到程序被终止或者出现异常。
相关问题
python 生成器 斐波那契数列
生成器是一种特殊的函数,它可以在需要时生成一个序列,而不是一次性生成整个序列。斐波那契数列是一个经典的数列,其中每个数字都是前两个数字的和。在Python中,可以使用生成器来生成斐波那契数列。生成器函数使用yield语句来返回一个值,并暂停函数的执行,直到下一次调用。这使得生成器函数可以在需要时生成一个序列,而不是一次性生成整个序列。在Python中,有多种方法可以生成斐波那契数列,其中包括使用循环和递归。使用生成器函数生成斐波那契数列的方法可以参考以下代码:
def fibonacci(num):
a = 0
b = 1
current_index = 0
while current_index < num:
result = a
a, b = b, a + b
current_index += 1
yield result
f = fibonacci(5)
for i in f:
print(i)
这段代码定义了一个名为fibonacci()的生成器函数,该函数使用循环来生成斐波那契数列。在函数中,代码使用一个while循环来生成每个斐波那契数,并使用yield关键字将它们作为生成器对象的元素返回。然后,代码创建一个斐波那契数列生成器对象,并使用for循环来逐个打印前5个斐波那契数。
编写一个生成器函数,能够生成斐波那契数列
好的,下面是一个生成斐波那契数列的生成器函数:
```python
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
```
这个函数使用了 Python 的生成器语法,每次调用 `yield` 关键字时,函数都会返回当前的斐波那契数列元素,并在下一次调用时继续从上一次的位置继续执行,直到无限循环结束。
你可以通过以下代码测试这个函数:
```python
fib = fibonacci()
for i in range(10):
print(next(fib))
```
这段代码会输出斐波那契数列的前 10 个元素。