函数-计算统计值类

题目:

在python中statistics模块实现常用的统计公式,允许使用python的各种数值类型(int,float,Decimal和Fraction)来完成高效计算。
本题为了加强同学们对列表、类设计,不采用直接调用statistics模块相应方法来完成输入一组数据的基本统计值统计值。
要求:定义一个类计算统计值类CalStatisticsValue,类中方法有:构造方法(用来初始化成员变量)、计算平均值CauMean、计算标准差CauDev、计算中位数CauMedian;成员变量有:Datas(列表类型,用来存储数据)、Mean(平均值)、Dev(标准差)、Median(中位数)。

获取以逗号分隔的多个数据输入(输入为一行),计算基本统计值(平均值、标准差、中位数)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

除中位数外,其他输出保留小数点后两位。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

请编写算统计值类CalStatisticsValue,以补充完整代码,使得程序可以得到正确运行。

函数接口定义:

#python
#CalStatisticsValue.py

'''请 完整定义并实现类class CalStatisticsValue:*'''

'''你的代码将嵌入到这里'''

 ####裁判测试程序样例:
if __name__ == "__main__":
     Sdata = CalStatisticsValue()
     Sdata.GetData()  #获取用户不定长度Datas的输入
     print("原数据序列:",end='')
     print(Sdata.Datas)
     print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(Sdata.CauMean(),Sdata.CauDev(),Sdata.CauMedian()))

### 输入样例:

在这里给出一组输入。例如:

```in
1,3,6,9,2,5,1

输出样例:

在这里给出相应的输出。例如:

原数据序列:[1,3,6,9,2,5,1]
平均值:3.86,标准差:2.97,中位数:3

 代码展示:

from math import *
class CalStatisticsValue:
    def __init__(self):
        self.Datas=[]
        self.Mean=0.0
        self.Dev=0.0
        self.Median=0
        
    def GetData(self):
        s=input()
        self.Datas=list(eval(s))
        
    def CauMean(self):
        self.Mean=0.0
        for i in self.Datas:
            self.Mean+=i
        self.Mean=self.Mean/(len(self.Datas))
        return self.Mean

    def CauDev(self):
        self.Dev=0.0
        for i in self.Datas:
            self.Dev+=(i-self.CauMean())**2
        self.Dev=sqrt(self.Dev/(len(self.Datas)-1))
        return self.Dev

    def CauMedian(self):
        self.Datas.sort()
        self.Median=len(self.Datas)
        if(self.Median % 2 ==0):
            self.Median=(self.Datas[self.Median//2-1]+self.Datas[self.Median//2])/2
        else:
            self.Median=self.Datas[self.Median//2]
        return self.Median
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值