生成器實現斐波那契數列

2021-09-19 05:28:44 字數 762 閱讀 6524

「」「生成器實現斐波那契數列」""

#著名的斐波拉契數列(fibonacci),除第乙個和第二個數外,任意乙個數都可由前兩個數相加得到:

# 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
#斐波拉契數列用列表生成式寫不出來,但是,用函式把它列印出來卻很容

def fbnq(num):

a=0b=1

current_index=0 #當前下標

while current_index#程式遇到yield返回值之後會暫停,下次執行時會從這裡開始,當後面遇到return時會立即結束迭代

yield result #乙個函式**現yield,則說明該函式是生成器

# return "haha"

if __name__ == '__main__':

ret=fbnq(3)

while true:

try:

ret1=next(ret)

print(ret1)

except stopiteration as e:

print(e.value)

## print(next(ret))

# print(next(ret))

# print(next(ret))

#溢位報錯

# print(next(ret))

# for i in ret:

# print(i)

Python 使用生成器生成斐波那契數列

def fib n a,b,counter 0,1,0while true if counter n return print a,end a,b b,a b counter counter 1fib 10 0112 35813 2134 55在python中,使用了yield的函式被稱為生成器,與...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

實現斐波那契數列

方法 一 通過迭代器實現 class fibiterator object def init self,n self.n n 是使用current儲存當前數列中第幾個數 self.current 0 使用num1儲存數列中前乙個數,初始值為0 self.num1 0 使用num2儲存數列中後乙個數,...