有5个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。要求用一个input函数输入5个学生数据,用一个average函数求总平均分,用max函数求最高分学生数据。总平均分和最高分学生数据都在主函数中输出
时间: 2023-12-15 08:29:28 浏览: 56
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
好的,我明白了。以下是示例代码:
```python
def input_data():
students = []
for i in range(5):
student = {}
student['id'] = input("请输入第{}个学生的学号:".format(i+1))
student['name'] = input("请输入第{}个学生的姓名:".format(i+1))
student['scores'] = []
for j in range(3):
score = float(input("请输入第{}个学生的第{}门课程成绩:".format(i+1, j+1)))
student['scores'].append(score)
students.append(student)
return students
def average(students):
total_scores = [0, 0, 0]
for student in students:
for i in range(3):
total_scores[i] += student['scores'][i]
avg_scores = [score/5 for score in total_scores]
return avg_scores
def max_score(students):
max_student = students[0]
for student in students:
if sum(student['scores']) > sum(max_student['scores']):
max_student = student
return max_student
if __name__ == '__main__':
students = input_data()
avg_scores = average(students)
max_student = max_score(students)
print("3门课程的总平均分数为:", avg_scores)
print("最高分学生的数据为:学号 - {}, 姓名 - {}, 3门课成绩 - {}, 平均分数 - {}".format(max_student['id'], max_student['name'], max_student['scores'], sum(max_student['scores'])/3))
```
你可以直接复制粘贴到本地的 Python 环境中执行看看。
阅读全文