• python-迭代器与生成器2


    python-迭代器与生成器2

     

     

    def fib(max):
        n,a,b=0,0,1
        while n<max:
            #print(b)
            yield b
            a,b=b,a+b     #t=(b,a+b) 是一个tuple
            n=n+1
        return "----done______"
    #print(fib(10))
    f=fib(10)
    print(f.__next__())
    print(f.__next__())
    print("=======开始 ")
    for i in f:
        print(i)
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    
    
    #异常查询:
    g=fib(10)
    while True:
        try:
            x=next(g)
            print("g:",x)
        except StopIteration as e:
            print("Generator return vlue:",e.value)
            break
            

    #协程单线程下面简单的单线成
    import time
    def consumer(name):
    print("%s 准备渴酒" %name)
    while True:
    drink = yield

    print("酒[%s]来了,[%s]快渴完了!" %(drink,name))

    c=consumer("kezi")
    c.__next__()

    b1="白酒"
    c.send(b1)
    c.__next__()
    def producer(name):
    c = consumer('A')
    c2 = consumer('B')
    c.__next__()
    c2.__next__()
    print("我开始准备卖酒啦!")
    for i in range(10):
    time.sleep(1)
    print("做了2瓶葡萄酒!")
    c.send(i)
    c2.send(i)

    producer("葡萄酒")

    打印结果


    kezi 准备渴酒
    酒[白酒]来了,[kezi]快渴完了!
    酒[None]来了,[kezi]快渴完了!
    A 准备渴酒
    B 准备渴酒
    我开始准备卖酒啦!
    做了2瓶葡萄酒!
    酒[0]来了,[A]快渴完了!
    酒[0]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[1]来了,[A]快渴完了!
    酒[1]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[2]来了,[A]快渴完了!
    酒[2]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[3]来了,[A]快渴完了!
    酒[3]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[4]来了,[A]快渴完了!
    酒[4]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[5]来了,[A]快渴完了!
    酒[5]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[6]来了,[A]快渴完了!
    酒[6]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[7]来了,[A]快渴完了!
    酒[7]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[8]来了,[A]快渴完了!
    酒[8]来了,[B]快渴完了!
    做了2瓶葡萄酒!
    酒[9]来了,[A]快渴完了!
    酒[9]来了,[B]快渴完了!

  • 相关阅读:
    点击新闻弹出新闻内容,并且新闻内容根据鼠标移动
    阻止用户复制页面上的文字的几种方法
    js简易聊天框- 鼠标和回车键发送消息
    Java——package和import关键字
    Java——static关键字
    Java——单例模式初步
    Java——this关键字
    Java面向对象的特征一:封装性
    Java再谈方法
    Java——对象
  • 原文地址:https://www.cnblogs.com/kezi/p/12021437.html
Copyright © 2020-2023  润新知