首页 > 代码库 > python:生成器

python:生成器

首先先说斐波那契数列

#斐波那契数列,1,1,2,3,5,8,13,21,34,55def 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)

 

python:生成器