1 #基本统计值计算
2 def getNum(): #获取用户不定长度的输入
3 nums = []
4 iNumStr = input('请输入数字【回车退出】:')
5 while iNumStr != '':
6 nums.append(eval(iNumStr))
7 iNumStr = input('请输入数字【回车退出】:')
8 return nums
9
10 def mean(numbers): #计算平均值
11 s = 0.0
12 for num in numbers:
13 s = s + num
14 return s / len(numbers)
15
16 def dev(numbers, mean): #计算方差
17 sdev = 0.0
18 for num in numbers:
19 sdev = sdev + (num - mean)**2
20 return pow(sdev / (len(numbers) - 1), 0.5)
21
22 def median(numbers): #计算中位数
23 sorted(numbers)
24 size = len(numbers)
25 if size % 2 == 0:
26 med = (numbers[size//2-1] + numbers[size//2])/2
27 else:
28 med = (numbers[size//2])
29 return med
30
31 n = getNum()
32 m = mean(n)
33 print('平均值:{},方差{:.2},中位数:{}'.format(m, dev(n, m),median(n)))