Python 基础笔记之生成器generator

生成斐波拉契数列
def fib(length):
    a,b=0,1
    n=0
    while n<length:
        yield a
        a,b=b,a+b

        n+=1
    return 'abc'
g2=fib(10)
try:
    print(next(g2))
生成器方法:
__next__():获取下一个元素
send(value):向每次生成器调用中传值 注意:第一次调用send(None)
def gen():
    i=0
    while i<5:
        temp=yield i
        print(f'temp:{temp}')
        i+=1
    return "没有更多的数据"
g=gen()
g.__next__()
n1=g.send('haha')
n2=g.send('哈哈')
print(n1)
print(n2)

生成器:generator 1.通过列表推导式 g=(x for x in range(6)) 2.函数和yield def func(): ... yield g=func() 产生元素 1.next(generator) -->每次调用都会生成一个新的元素,如果元素产生元素完毕,再次调用就会产生异常 2.生成器自己的方法: g.__next__() g.send() 应用:协程

#进程>线程>协程

def task1(n):
    for i in range(n):
        print("在搬运第{}块砖头".format(i))
        yield None
def task2(n):
    for i in range(n):
        print("正在听{}".format(i))
        yield None

g1=task1(10)
g2=task2(5)

while True:
    try:
        g1.__next__()
        g2.__next__()
    except:
        break

上一篇:CocosCreator 构建透明背景应用(最新版!!!)


下一篇:Windows 命令提示符(cmd)中输入 mysql 并收到错误消息“MySQL不是内部或外部命令,也不是可运行的程序或批处理文件?