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)))
测试: