实例9:基本统计值计算
标题描述
获取以逗号分隔的多个数据输入(输入为一行),计算基本统计值(平均值、标准差、中位数)。除中位数外,其他输出保留小数点后两位。
解答
#CalStatisticsV1.py
def getNum(): #获取用户不定长度的输入
tmp = input().split(',')
for i in range(len(tmp)):
tmp[i] = eval(tmp[i])
return tmp
def mean(numbers): #计算平均值
return sum(numbers)/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): #计算中位数
numbers.sort()
if len(numbers)%2 == 0:
return (numbers[len(numbers)//2 - 1] + numbers[len(numbers)//2])/2
else:
return numbers[len(numbers)//2]
n = getNum() #主体函数
m = mean(n)
print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(mean(n), dev(n, m), median(n)))
题目出处:
Python语言程序设计 (第13期)