用python设计一个考试成绩统计系统。考试共三个科目语文、数学和英语。考试人数不限(至少5人),每门科目的分数自行设置。要求: (1)统计每门科目的最高分、最低分和平均分 (2)每个学生分数最高的科目、分数最低的科目和总分
时间: 2024-03-14 21:45:51 浏览: 61
好的,下面是一个简单的考试成绩统计系统的 Python 代码实现:
```python
# 定义科目和分数范围
subjects = ["语文", "数学", "英语"]
score_range = {"语文": (0, 100), "数学": (0, 100), "英语": (0, 100)}
# 获取考试人数
while True:
try:
n = int(input("请输入考试人数(至少5人):"))
if n < 5:
print("考试人数不能少于5人,请重新输入!")
else:
break
except ValueError:
print("输入不合法,请重新输入!")
# 获取每位学生的成绩
scores = []
for i in range(n):
print("请输入第{}个学生的成绩:".format(i + 1))
score_dict = {}
for subject in subjects:
while True:
try:
score = int(input("{}成绩:".format(subject)))
if score_range[subject][0] <= score <= score_range[subject][1]:
score_dict[subject] = score
break
else:
print("分数不在有效范围内,请重新输入!")
except ValueError:
print("输入不合法,请重新输入!")
scores.append(score_dict)
# 统计每门科目的最高分、最低分和平均分
for subject in subjects:
scores_list = [d[subject] for d in scores]
max_score = max(scores_list)
min_score = min(scores_list)
avg_score = sum(scores_list) / len(scores_list)
print("{}最高分:{},最低分:{},平均分:{}".format(subject, max_score, min_score, avg_score))
# 计算每个学生分数最高的科目、分数最低的科目和总分
for i in range(n):
student_scores = list(scores[i].values())
student_total = sum(student_scores)
max_score = max(student_scores)
min_score = min(student_scores)
max_subject = ""
min_subject = ""
for subject, score in scores[i].items():
if score == max_score:
max_subject = subject
if score == min_score:
min_subject = subject
print("第{}个学生的最高分科目是{},最低分科目是{},总分是{}".format(i + 1, max_subject, min_subject, student_total))
```
该程序首先定义了科目和分数范围,然后获取考试人数,并逐一获取每位学生的成绩。接着,它遍历每门科目,统计最高分、最低分和平均分,并输出结果;然后,它遍历每个学生,计算分数最高的科目、分数最低的科目和总分,并输出结果。
阅读全文