zoukankan      html  css  js  c++  java
  • 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]快渴完了!

  • 相关阅读:
    c#基础加强版之方法控制流复习-3控制台打印密码
    c#基础加强版之方法控制流复习-2变量是否初始化的问题
    c#基础加强版之方法控制流复习-1关于方法的讲解
    小菜学try语句,又被trouble给catch住了
    JQuery--CSS操作
    JavaScript--DOM操作
    JavaScript--选择器
    JQuery--jQuery对象与DOM对象
    JavaScript--DOM编程
    JDBC--调用函数&存错过程
  • 原文地址:https://www.cnblogs.com/kezi/p/12021437.html
Copyright © 2011-2022 走看看