用python编写,统计成 假设我们有一个班級的成绩列表,我们需要编写一些函数来统计成绩的一些基本信息,如最高分、最低分、平均分以及成绩分布情况。 实验目标: 创建一个成绩列表。 编写函数来找出最高分和最低分。 计算平均分。 统计各分数段的学生人数。
时间: 2024-10-20 21:05:39 浏览: 39
首先,我们可以创建一个名为`ScoreTracker`的类,其中包含一些必要的函数来实现上述任务。这里是一个简化的例子:
```python
import statistics
class ScoreTracker:
def __init__(self):
self.grades = []
# 添加成绩
def add_grade(self, score):
self.grades.append(score)
# 统计最高分和最低分
def get_min_max_scores(self):
return min(self.grades), max(self.grades)
# 计算平均分
def calculate_average(self):
return statistics.mean(self.grades)
# 统计各分数段的人数
def count_frequency(self, bins=5): # 可选的分数段数量
frequency = dict()
for grade in self.grades:
if grade not in frequency:
frequency[grade] = 0
frequency[grade] += 1
return {k: v for k, v in sorted(frequency.items(), key=lambda item: item[0])}
# 使用示例
tracker = ScoreTracker()
tracker.add_grade(85)
tracker.add_grade(92)
tracker.add_grade(78)
tracker.add_grade(100)
tracker.add_grade(88)
min_score, max_score = tracker.get_min_max_scores()
avg_score = tracker.calculate_average()
freq_distribution = tracker.count_frequency()
print(f"最高分: {max_score}")
print(f"最低分: {min_score}")
print(f"平均分: {avg_score}")
print("各分数段学生人数分布:")
for grade, count in freq_distribution.items():
print(f"{grade}: {count}")
```
在这个例子中,我们首先导入了`statistics`模块,它包含了计算平均值的功能。`ScoreTracker`类初始化了一个空的成绩列表,并提供了一些方法来添加成绩、获取最高分和最低分、计算平均分以及统计每个分数段的学生人数。最后,我们创建了一个实例并展示了如何使用这些方法。
阅读全文