標籤:

斐波那契數列(fib) 4種方法實現 171201

  • 大綱

  • 循環 while

  • 遞歸 recursion

  • 迭代 iter

  • 生成器 generator

from itertools import islicedef fib_while(n): prev = 0 cur = 1 if n in (0,1): return n while n: prev,cur = cur,prev+cur n -= 1 return prevfib_while(10)def fib_recr(n): if n in (0,1): return n else: return fib_recr(n-1) + fib_recr(n-2)class Fib_Iter(object): def __init__(self): self.prev = 0 self.cur = 1 def __iter__(self): return self def __next__(self): self.prev,self.cur = self.cur,self.cur+self.prev return self.prev fib = Fib_Iter()print(next(fib))list(islice(fib,3,5))def fib_ge(): prev = 0 cur = 1 while True: prev,cur = cur,prev+cur yield prevf = fib_ge()print(next(f))list(islice(f,3,5))

推薦閱讀:

在Mac系統下python如何安裝第三方函數庫?
一鍵開啟你的專屬博客!
如果每天堅持用12個小時學習一門編程語言,一年下來,編程能力會達到什麼程度?
一行Python代碼能做什麼?
這或許是對小白最友好的python入門了吧——14,遍歷字典

TAG:Python |