Python 之 生成器

知识点:

1.生成器:开发时需要一个列表,但是这个列表不能占用较大的内存空间 可以保存计算方法,用一个计算一个

2.生成器的第一种方法:a =(x for x in range(10))

3.生成器的第二种方法: 函数中加入 yield

4.生成器的使用方法next(a) a.__next__()

5.生成器 a.send("haha")   yield xx  表达式的值为haha

5.yield 实现多任务

生成器的第一种方法

#引例
a = [x for x in range(10)]
print(a)
#生成器创建方法(1)
b = (x for x in range(10))
print(b)
print(b.__next__())
print(next(b))

生成器的第二种方法: 函数中加入 yield

def creatNum():
    print("----start----")
    a,b = 0,1
    for x in range(10):
        print("--暂停--")
        yield b
        a,b = b,a+b
        print("--hahha--")
    print("----end----")
b = creatNum()
print(next(b))
print(next(b))

生成器 a.send("haha")   yield xx  表达式的值为haha

def creatNum():
    a ,b = 0,1
    for x in range(10):
        temp  = yield b
        print(temp)

a = creatNum()
next(a)
next(a)
a.send("haha") #yied b 表达式的结果为 haha  将haha付给temp
next(a)
a.send(None)
next(a)

yield 实现多任务

def creatNum1():
    for x in range(10):
        print(1)
        yield None

def creatNum2():
    for x in range(10):
        print(2)
        yield None

def main():
    p1 = creatNum1()
    p2 = creatNum2()
    for x in range(10):
        p1.__next__()
        p2.__next__()
if __name__ == "__main__":
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值