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]快渴完了!

  • 相关阅读:
    3813: 奇数国|树状数组|欧拉函数
    利用Perlin nosie 完毕(PS 滤镜—— 分成云彩)
    Qt QImageReader 相似乎有bug
    android studio 更新Gradle版本号方法
    Junit测试
    POI导出
    Properties文件读取
    md5加密
    递归找出文件夹里面所有文件
    java FileReader/FileWriter读写文件
  • 原文地址:https://www.cnblogs.com/kezi/p/12021437.html
Copyright © 2011-2022 走看看