Python的类(3): 编写一个能够生成斐波那契序列的类,并提供迭代功能。 参考:
时间: 2024-02-18 10:01:45 浏览: 29
好的,下面是一个生成斐波那契序列的类,并提供迭代功能的示例代码:
```python
class Fibonacci:
def __init__(self, n):
self.n = n
self.current = 0
self.next = 1
def __iter__(self):
return self
def __next__(self):
if self.current < self.n:
result = self.current
self.current, self.next = self.next, self.current + self.next
return result
else:
raise StopIteration
```
在这个类中,我们定义了一个 `__init__` 方法来初始化对象状态,其中 `n` 是我们要生成的斐波那契数列的长度。我们还定义了 `current` 和 `next` 两个变量来记录当前和下一个斐波那契数。
接下来,我们实现了 `__iter__` 和 `__next__` 方法,这两个方法使我们的类成为可迭代的。在 `__next__` 方法中,我们首先检查当前斐波那契数是否小于 `n`,如果是,则返回当前数,并更新 `current` 和 `next` 变量。否则,我们抛出一个 `StopIteration` 异常,表示迭代结束。
现在我们可以使用这个类来生成斐波那契数列了,例如:
```python
fib = Fibonacci(10)
for num in fib:
print(num)
```
这将输出前 10 个斐波那契数:0、1、1、2、3、5、8、13、21 和 34。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)