期末考试后,要对成绩进行统计分析,请编写程序计算成绩的平均值、标准差、中位数。程序主体部分、获得成绩输入函数、求平均值函数已经给出,请按要求完成标准差、中位数2个函数 (1)平均值: image.png (2)标准差: image.png (3)中位数:排序,总个数为奇数找中间1个,偶数找中间2个取平均。 函数接口定义: def median(n): 其中 n 是用户传入的参数。函数须返回计算的中位数。 函数接口定义: def dev(n,mean): 其中 n,mean是用户传入的参数。函数须返回计算的方差。
时间: 2024-03-28 12:41:20 浏览: 126
好的,我明白了。下面是标准差和中位数的函数实现:
```
import math
# 获取成绩输入
def get_scores():
scores = []
while True:
score = input("请输入一个成绩(按q退出):")
if score == 'q':
break
scores.append(float(score))
return scores
# 求平均值
def mean(scores):
return sum(scores) / len(scores)
# 求标准差
def dev(scores, mean):
variance = sum([(x - mean) ** 2 for x in scores]) / len(scores)
return math.sqrt(variance)
# 求中位数
def median(scores):
scores.sort()
n = len(scores)
if n % 2 == 0:
return (scores[n // 2 - 1] + scores[n // 2]) / 2
else:
return scores[n // 2]
# 测试
scores = get_scores()
mean_score = mean(scores)
dev_score = dev(scores, mean_score)
median_score = median(scores)
print("平均值:", mean_score)
print("标准差:", dev_score)
print("中位数:", median_score)
```
注意:上述代码中的 `get_scores()` 和 `mean()` 函数已经给出,不需要再实现。
你可以将这段代码复制到编辑器中运行,测试一下,看看是否满足要求。
阅读全文