簡體   English   中英

python中的無限Fibonacci生成器,產量誤差?

[英]infinite Fibonacci generator in python with yield error?

def fib_gen():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

print(next(fib_gen())) 
print(next(fib_gen())) 
print(next(fib_gen())) 
print(next(fib_gen()))

Output: 0 
        0 
        0 
        0

我試圖在python中創建一個無限的Fibonacci生成器。 請幫忙......我哪里做錯了?

每次調用fib_gen()都會創建一個處於初始狀態的新生成器。 嘗試將fib_gen()的返回值fib_gen()變量並在同一個變量上調用next()

首先需要創建一個生成器對象:

def fib_gen():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b


generator = fib_gen()

print(next(generator))
print(next(generator))
print(next(generator))
print(next(generator))

輸出是:

0
1
1
2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM