【Python3_进阶系列_011】Python3-多种方法实现斐波那契数列
一、斐波那契数列
斐波那契数列问题和兔子繁殖,青蛙跳台都是同一个问题。
原理不在介绍,下面直接列出多种不同实现方式的代码:
#####多种方式实现斐波那契数列 ##### 1.递归函数实现 def fib1(n): if n<=0: return 0 elif n==1: return 1 else: return fib1(n-1)+fib1(n-2) # for i in range(1,7): # print(fib1(i)) #### 2.普通函数实现 def fib2(maxs): n,a,b = 0,0,1 while n < maxs: print(b) a,b = b,a+b n = n + 1 #### 3.生成器实现 def fib3(m): n,a,b=0,0,1 while n<m: yield b a,b=b,a+b n+=1 # for x in fib2(7): # print(x) ### 4.迭代器实现 class Fib4(): def __init__(self,n): self.a=0 self.b=1 self.n=n self.index=0 def __iter__(self): return self def __next__(self): if self.index<self.n: result = self.a self.a,self.b=self.b,self.a+self.b self.index+=1 return result else: raise StopIteration re = Fib4(9) for x in re: print(x)