斐波那契數列(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 |