码迷,mamicode.com
首页 > 编程语言 > 详细

python:生成器

时间:2016-10-13 23:43:57      阅读:158      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!