python - 如何在python生成器中运行所有斐波那契数
问题描述
所以我创建了一个函数,它本质上将一个值作为参数并运行斐波那契数列。每次我使用下一个时,它往往只打印 1 。我不确定它为什么这样做。当它到达 yield 关键字时,它返回 1 的值。到目前为止,我的代码如下:
def fibonacci(n):
curr = 1
prev = 0
counter = 0
while counter < n:
yield curr
prev, curr = curr, prev + curr
counter += 1
print(next(fibonacci(10)))
print(next(fibonacci(10)))
print(next(fibonacci(10)))
解决方案
您需要在使用之前实例化生成器的对象,例如:
g = fibonacci(10)
print(next(g))
print(next(g))
print(next(g))
将返回以下输出:
1
1
2
推荐阅读
- javascript - window.print() 在安卓设备上不起作用
- c# - 错误 LGHT0103 : 系统找不到文件
- excel - 在一组形状中查找文本框(VBA 6.3)
- reactjs - 为什么我不能在全局上下文中返回数据数组?
- python - python:使用纬度和经度查找提供位置半径内的位置的优雅方法
- python - 在学习如何使用 __init__ 语句时遇到问题
- javascript - Azure 地图控件覆盖 CSS 样式
- javascript - React Sortable Tree:默认展开每个节点
- geopandas - 如何读取特定坐标格式的匀称文件或将坐标格式打包的 DMS 与十进制更改为 DMS 格式
- python - 根据条件对多个数据框列求和