姜小白的Python日记Day11 生成器与并行运算

#列表生成式

[i*2 for i in range(10)]#列表生成式

a = []
for i in range(10):
a.append(i*2)

b = (i*2 for i in range(10))#只有在调用时才会生成数据且只记录当前数据
b.next()

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),a=t[0],b=[a+b]
n=n+1
return “done”
fib(10)
f=fib(8)
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())
print(f.next())

while True:#捕获异常
try:
x = next(g)
print(“g:”,x)
except StopIteration as e:
print(“Generator return value:”,e.value)
print("------satrt loop------")

for i in f:#循环取数
print(i)

import time
def cousumer(name):#定义用户函数操作
print("%s 我要准备吃包子了" %name)
while True:
baozi = yield
print(“包子[%s]来了,被[%s]给吃了” %(baozi,name))

def productor(name):#定义生产者函数操作
c1 = cousumer(“A”)
c2 = cousumer(“B”)
c1.next()
c2.next()
print(“我要准备做包子啦”)
for i in range(10):
time.sleep(1)
print(“做了一个包子,分给两个人”)
c1.send(i)#将值传入至生成器
c2.send(i)
productor(“jiangshuai”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值