所以我创建了一个函数,该函数本质上将一个值作为参数并运行斐波那契数列。每次我使用next时,它往往只打印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)))
答案 0 :(得分:1)
使用之前,您需要实例化生成器的对象,例如:
g = fibonacci(10)
print(next(g))
print(next(g))
print(next(g))
将返回以下输出:
1
1
2
答案 1 :(得分:0)
这是一种对我有用的解决方案:
def fibonacci(n):
fibonacci_list = []
curr = 1
prev = 0
counter = 0
while counter < n:
prev, curr = curr, prev + curr
counter += 1
fibonacci_list.append(curr)
return fibonacci_list;
x = fibonacci(10)
print(x)
告诉我是否有帮助
SLP