标签:
首先先说斐波那契数列
#斐波那契数列,1,1,2,3,5,8,13,21,34,55
def fib(max):
n,a,b =0,0,1
while n < max:
print(b)
a,b=b,a+b
n=n+1
# return "done"
fib(10)
生成器: 就是把斐波那契中的 print(b) 换成yield b
生成器的好处是:省内存 。
只有一个next方法
next 调用Yield, Send是给Yield传值
code=‘‘‘def fib(max):
n,a,b =0,0,1
while n < max:
yield b
a,b=b,a+b
n=n+1
return ‘----done-----------‘
f=fib(5)
while True:
try:
x=next(f)
print("f:",x)
except StopIteration as e:
print("Generator return value:",e.value)
break
‘‘‘
exec(code)
标签:
原文地址:http://www.cnblogs.com/xuehuahongmei/p/5958508.html