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

最新文章

  1. Android动态加载框架汇总
  2. 关于C++默认初始化的总结——开个坑
  3. MTK MT33xx型GPS的NMEA协议解析实例
  4. 如何搭建开源code review gerrit服务器
  5. stst
  6. 管道过滤器模式(Pipe and Filter)与组合模式(修改)
  7. 【代码笔记】iOS-多张图片合成一张
  8. uploadify ,前端页面获取值,json,ajax
  9. javascript生成自定义的arcgis simpletoolbar
  10. JAVA IO流结构图
  11. Django连接mysql数据库
  12. Linux服务器安装Oracle服务端总结
  13. 安卓逆向学习---初始APK、Dalvik字节码以及Smali
  14. CentOS7+ApacheServer2.4+MariaDB10.0+PHP7.0+禅道项目管理软件8.0环境部署
  15. Web安全测试-WebScarab
  16. Logistic回归分析简介
  17. Springboot 编码规范
  18. Jfinal本地eclipse+tomcat运行项目时候遇到错误Exception starting filter
  19. Numpy 练习题
  20. Remi 安装源

热门文章

  1. Docker学习笔记 — Docker私有仓库搭建
  2. Leetcode之动态规划(DP)专题-72. 编辑距离(Edit Distance)
  3. servlet学习之servletAPI编程常用的接口和类
  4. 菜鸟系列k8s——k8s集群部署(2)
  5. layer ajax请求
  6. js中‘0’到底是 true 还是 false
  7. C++学习 之 继承(笔记)
  8. HDU 3416 Marriage Match IV (最短路建图+最大流)
  9. # 解决MongoDB突然无法连接的问题
  10. java检测是不是移动端访问