如何在python生成器中运行所有斐波那契数
所以我创建了一个函数,它基本上以一个值作为参数,并运行斐波那契序列。每次使用next时,它往往只打印1。我不知道它为什么这样做。当它到达yield关键字时,返回值1。到目前为止,我的 代码如下:如何在python生成器中运行所有斐波那契数,python,python-2.7,generator,fibonacci,Python,Python 2.7,Generator,Fibonacci,所以我创建了一个函数,它基本上以一个值作为参数,并运行斐波那契序列。每次使用next时,它往往只打印1。我不知道它为什么这样做。当它到达yield关键字时,返回值1。到目前为止,我的 代码如下: def fibonacci(n): curr = 1 prev = 0 counter = 0 while counter < n: yield curr prev, curr = curr, prev + curr
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)))
def fibonacci(n):
电流=1
prev=0
计数器=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)
def fibonacci(n):
斐波那契列表=[]
电流=1
prev=0
计数器=0
当计数器
告诉我是否有用
SLP在使用生成器之前,您需要实例化它的对象,例如:
g = fibonacci(10)
print(next(g))
print(next(g))
print(next(g))
将返回以下输出:
1
1
2
在提出已经回答的问题之前,请先上网搜索。每次调用
fibonacci(10)
都可能会重复的创建一个新的生成器/迭代器,该生成器/迭代器再次以1开头。