【FROM MOOC PYTHON】基本统计值计算
根据输入的值进行均值、方差、中位数的求解:
第一步:用户输入数据,当数据为空时代表输入完毕。
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+=num
return s/len(numbers)
def dev(numbers,mean):#求方差
sdev=0.0
for num in numbers:
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]+number[size//2])/2
else:
med=numbers[size//2]
return med
第三步:调用函数
n=getnum()
m=mean(n)
print("这组数据的平均数是:{},方差是:{:.2f},中位数是:{}".format(m,dev(n,m),median(n)))
最终代码:
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+=num
return s/len(numbers)
def dev(numbers,mean):#求方差
sdev=0.0
for num in numbers:
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]+number[size//2])/2
else:
med=numbers[size//2]
return med
n=getnum()
m=mean(n)
print("这组数据的平均数是:{},方差是:{:.2f},中位数是:{}".format(m,dev(n,m),median(n)))
效果展示: