day15 Pyhton学习

迭代器

掌握for循环

实际上for循环的本质,就是将一个可迭代的变成迭代器

每一次从中取值都相当于执行了一次next

如果是迭代器,那么只能取一次值

生成器 - 本质就是迭代器

生成器函数(返回值是生成器) :

  处理比较复杂的逻辑

  yield的形式返回值,并且再一次调用中可以多次执行yield

生成器表达式的(结果是生成器) :

  处理比较简单的逻辑

  并且能够以更少的代码来节省时间空间

# 计算移动平均值的例子
def cal_avg():
    sum = 0
    count = 0
    while True: if count: num = yield sum/count else: num = yield 0 sum += num count += 1 g=cal_avg() print(g.__next__())#0 avg1 = g.send(7) print(avg1)#7 avg1 = g.send(9) print(avg1)#9 avg1 = g.send(8) print(avg1)#8 avg1 = g.send(10) print(avg1)#10

猜你喜欢

转载自www.cnblogs.com/pythonz/p/9918307.html