标签:方法 列表 ini a+b lse [] raise init str
#函数实现
def fib(num):
n,a,b=0,0,1
while n<num:
print(b)
a,b=b,a+b
n+=1
#列表添加
def fib(num):
n,a,b=0,0,1
l=[]
while n<num:
l.append(b)
a,b=b,a+b
n+=1
return l
#类,迭代器实现
class Fib:
def __init__(self,num):
self.num=0
self.n=0
self.a,self.b=0,1
def __iter__(self):
return self
def __next__(self):
if self.n<self.num:
result=self.b
self.a,self.b=self.b,self.a+self.b
self.n+=1
return result
else:
raise StopIteration
斐波拉契yield生成器实现
def fib(num):
n,a,b=0,0,1
while n<num:
yield b
a,b=b,a+b
n+=1
for i in fib(10):
print(i)
标签:方法 列表 ini a+b lse [] raise init str
原文地址:http://blog.51cto.com/13694862/2159488