知识点:
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()