首页 > 编程语言 > 详细

python:生成器

时间:2016-10-13 23:41:04      阅读:190      评论:0      收藏:0      [点我收藏+]

首先先说斐波那契数列

#斐波那契数列,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)

 

python:生成器

原文:http://www.cnblogs.com/xuehuahongmei/p/5958508.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!