基本统计值的计算 1、需要获得多个数据:不知道具体由多少数据,需要定义函数获取。
def getnum(): #获取不定长的数字 nums=[] inumstr=input("请输入数字(回车退出):") while inumstr !="": nums.append(eval(inumstr)) inumstr=input("请输入数字(回车退出):") return nums如果输入不是空,则将字符变为数字后加入再nums列表的后面,形成新的列表,直到输入的为空字符串或者回车,则程序不再循环,然后返回nums,如此便可获取不定长的序列。 2、计算平均值
def mean(numbers): #计算平均值 s=0.0 for num in numbers: s=s+num return s/len(numbers)这里直接累加求和,最后求出其总和,最后列表长度即为数字个数,以总和除以列表长度即可得出平均值。 3、计算方差
def dev(numbers,mean): #计算方差 sdev=0.0 for num in numbers: sdev=sdev+(num-mean)**2 return pow(sdev/(len(numbers)-1),0.5)用for…in…的形式逐一取出元素得到差的方,最终求得方差。 4、中位数计算
def median(numbers): #计算平均数 sorted(numbers) size=len(numbers) if size%2==0: med=(numbers[size//2-1]+numbers[size//2])/2 else: med=numbers[size//2] return med其中sorted()函数为对列表内的元素进行排序,排序以后就可以利用中位数的定义求出中位数。 5、完整程序
#基本统计值计算 def getnum(): #获取不定长的数字 nums=[] inumstr=input("请输入数字(回车退出):") while inumstr !="": nums.append(eval(inumstr)) inumstr=input("请输入数字(回车退出):") return nums def mean(numbers): #计算平均值 s=0.0 for num in numbers: s=s+num return s/len(numbers) def dev(numbers,mean): #计算方差 sdev=0.0 for num in numbers: sdev=sdev+(num-mean)**2 return pow(sdev/(len(numbers)-1),0.5) def median(numbers): #计算平均数 sorted(numbers) size=len(numbers) if size%2==0: med=(numbers[size//2-1]+numbers[size//2])/2 else: med=numbers[size//2] return med n=getnum() m=mean(n) print("平均值:{},方差:{:.2},中位数:{}。".format(m,dev(n,m),median(n)))我取了两组数据,得出的结果为: 我们实现了不确定长度数字串的基本量的计算。