利用Python編寫的Fibonacci

利用Python編寫的Fibonacci數列,用到了邏輯推導式,必用迭代方法,跟大家分享

(一) 

# 節省數據存放的空間(需要準備大量的數據,用於計算)
import time

class Fibonacci(object):
    def __init__(self,max = 10):
        self.current_num = 0
        self.max = max
        self.a = 0
        self.b = 1 

    def __iter__(self):
        return self

    def __next__(self):
        if self.current_num < self.max:
            ret = self.a
            #self.a,self.b = self.b,self.a + self.b 就是抄逗號前部等於襲等號後面百的度第一個(知self.a = self.b),逗號後面一道個等於等號後面的最後一個(self.b = self.a + self.b).
            #self.a = self.b,self.b = self.a+self.b;x,y =self.a,self.a+self.b
            self.a, self.b = self.b,self.a+self.b
            self.current_num += 1
            return ret
        else:
            self.current_num = 0
            self.a = 0
            self.b = 1
            raise StopIteration


f1 = Fibonacci(100)

for temp in f1:
    print(temp)
    time.sleep(0.1)
            
    
        
        
        

 運行效果:

 

(二)

def fab(num):
    a ,b=0, 1
    current_num = 0
    while True:
        if current_num < num:
            #print(a)
            yield a #碰到了yield相當於一個斷點並返回,再次遍歷或者使用next不會從函數開頭執行,
            #從yield位置繼續執行,直到碰到yield又一次斷點斷開
            a ,b = b , a+b
            current_num += 1
        else:
            break


f1 = fab(8)
for temp in f1:
    print(temp)
    

運行效果;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章