def getNum(): #获取用户不定长度的输入
Num_ = input()
Num =list(eval(Num_))
return Num
def mean(numbers): #计算平均值
s=0.0
for i in numbers:
s=s+i
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): #计算中位数
size = len(numbers)
numbers.sort()
if size%2==0:
return (numbers[size//2-1]+numbers[size//2])/2
else:
return numbers[size//2]
n = getNum() #主体函数
m = mean(n)
print(“平均值:{:.2f},标准差:{:.2f},中位数:{}”.format(m,
dev(n,m),median(n)))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
错误代码(截取部分):
def getNum(): #获取用户不定长度的输入
Num = []
Num =input()
return Num
1
2
3
4
错误原因:getNum()函数中未成功创建列表,致使返回的Num为int()型数据。
本题主要考虑如何处理输入数据,其他部分按照python教程操作即可。