获取以逗号分隔的多个数据输入(输入为一行),计算基本统计值(平均值、标准差、中位数)
除中位数外,其他输出保留小数点后两位。
代码如下:
#CalStatistics.py
def getNum(): #获取用户不定长度的输入
s = input()
ls = list(eval(s))
return ls
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): #计算中位数
numbers.sort() #将列表排序
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("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m, dev(n,m),median(n)))
从控制台获取多个不确定数据的方法
def get Num():
nums = []
s = input("请输入数字(回车退出):")
while nums !="":
nums = eval(s)
s = input("请输入数字(回车退出):")
return nums
分隔多个函数:模块化设计方法
列表默认排序ls.sort
或者sorted(ls)
将列表ls按照从小到大排序