#e9.1CalStatistics.py from math import sqrt 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 sqrt(sdev / (len(numbers)-1)) 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)))