用python设计考试成绩统计系统。考试共三个科目语文、数学和英语。考试人数不限(至少5人),每门科目的分数自行设置(0到100分)。要求: (1)统计每门科目的最高分、最低分和平均分 (2)每个学生分数最高的科目(注意是科目不是分数)、分数最低的科目和总分。
时间: 2024-01-18 15:02:42 浏览: 66
基于python的成绩统计系统
5星 · 资源好评率100%
好的,以下是代码实现:
```python
# 定义一个空字典,用于存储学生的成绩信息
students = {}
# 定义三个空列表,分别用于存储语文、数学和英语科目的成绩
chinese_scores = []
math_scores = []
english_scores = []
# 输入每个学生的成绩信息,并将每个学生的成绩列表添加到字典变量中
while True:
name = input("请输入学生姓名(输入q结束):")
if name == "q":
break
chinese = int(input("请输入语文成绩:"))
math = int(input("请输入数学成绩:"))
english = int(input("请输入英语成绩:"))
students[name] = [chinese, math, english]
# 遍历字典变量中的每个学生的成绩信息,将每个学生在每个科目上的成绩添加到对应的科目列表中
for name in students:
chinese_scores.append(students[name][0])
math_scores.append(students[name][1])
english_scores.append(students[name][2])
# 计算每个科目的最高分、最低分和平均分
chinese_max = max(chinese_scores)
chinese_min = min(chinese_scores)
chinese_avg = sum(chinese_scores) / len(chinese_scores)
math_max = max(math_scores)
math_min = min(math_scores)
math_avg = sum(math_scores) / len(math_scores)
english_max = max(english_scores)
english_min = min(english_scores)
english_avg = sum(english_scores) / len(english_scores)
# 遍历字典变量中的每个学生的成绩信息,计算每个学生的总分、最高分和最低分,并记录每个学生在哪个科目上取得了最高分和最低分
for name in students:
total_score = sum(students[name])
max_score = max(students[name])
min_score = min(students[name])
max_subject = ""
min_subject = ""
if max_score == students[name][0]:
max_subject = "语文"
elif max_score == students[name][1]:
max_subject = "数学"
else:
max_subject = "英语"
if min_score == students[name][0]:
min_subject = "语文"
elif min_score == students[name][1]:
min_subject = "数学"
else:
min_subject = "英语"
students[name].append(total_score)
students[name].append(max_subject)
students[name].append(min_subject)
# 输出统计结果
print("语文科目:最高分为{}分,最低分为{}分,平均分为{}分".format(chinese_max, chinese_min, chinese_avg))
print("数学科目:最高分为{}分,最低分为{}分,平均分为{}分".format(math_max, math_min, math_avg))
print("英语科目:最高分为{}分,最低分为{}分,平均分为{}分".format(english_max, english_min, english_avg))
print("各个学生的成绩信息:")
for name in students:
print("{}的总分为{}分,最高分为{}分({}科目),最低分为{}分({}科目)".format(name, students[name][3], students[name][4], students[name][5], students[name][6], students[name][7]))
```
注意:在上述代码中,我们将每个学生的成绩信息存储为一个列表,其中第1个元素是语文成绩,第2个元素是数学成绩,第3个元素是英语成绩,第4个元素是总分,第5个元素是分数最高的科目,第6个元素是分数最低的科目。
阅读全文