Python教程

Python生成器(3)--生成器生成 斐波那契数列与send方法

本文主要是介绍Python生成器(3)--生成器生成 斐波那契数列与send方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
输入:
def fibo(max):    #用生成器生成斐波那契数列
    n,before,after = 0,0,1
    while n < max:
        yield before
        before,after = after,before+after
        n += 1

g=fibo(10)    #生成斐波那契数列的前10个数
print(g)    #打印出生成器内存地址<generator object fibo at 0x00000214314B0660>
print(next(g))    #输出0

for i in g:
    print(i)    #输出1 1 2 3 5 8 13 21 34

#########################################
def bar():
    print('hello')
    m = yield 10    #将yield赋值给m,使下次调用send方法时能传值进来
    print(m)
    yield 20

a = bar()
a.send(None)    #send方法用于传值进生成器函数,如果前面没有执行过next(a),a.send()第一次传值要传None,相当于next(a)
res = a.send('hi')    #第二次传值把’hi’传给函数bar里的m,然后返回值赋给res
print(res)    #打印出来res的值应该为20

输出:

<generator object fibo at 0x00000214314B0660>
0
1
1
2
3
5
8
13
21
34
hello
hi
20

这篇关于Python生成器(3)--生成器生成 斐波那契数列与send方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!