码迷,mamicode.com
首页 > 其他好文 > 详细

利用 send 方法计算多个数的平均数

时间:2019-05-01 22:36:00      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:一个   传递   并且   yield   __next__   方法   执行   个数   计算   

利用 send 方法计算多个数的平均数,并且可以多次输入:

def averager():            # 创建一个生成器函数
    sum = 0                # 创建一个总数变量
    count = 0              # 创建一个个数变量
    avg = 0                # 创建一个平均数变量
    while True:            # while 循环
        num = yield avg    # 先执行 next,然后再执行 send,yield avg 接受 send 返给函数的值,传给 num。
        sum = sum + num    # 第一次 sum = 0 + 10 (num = 10);第二次 send 传递 20 时,sum=10+20
        count += 1         # 第一次count=1;第二次运算,count=2;
        avg = sum / count  # 第一次avg = 10/1;第二次运算,avg=30/2;


a = averager()
get_avg = a.__next__()
get_avg = a.send(10)       # 向 yield 传送 10,然后接受返回值 10 给 get_avg
get_avg = a.send(20)       # 向 yield 传送 20,然后接受返回值 15 给 get_avg
print(get_avg)             # 打印结果为 15

  打印结果为 15

利用 send 方法计算多个数的平均数

标签:一个   传递   并且   yield   __next__   方法   执行   个数   计算   

原文地址:https://www.cnblogs.com/artfeb/p/10800950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!