有5个学生,每个学生的数据包括学号、姓名、3门课程的成绩。编写input函数用来输入5个学生的数据记录;编写print函数用来输出每位学生的学号、姓名、3门课程成绩及平均分;编写max_score函数用来寻找平均分最高的学生信息。
时间: 2023-12-15 13:28:13 浏览: 141
好的,我可以为您提供帮助。下面是一个示例代码,用来实现您的要求:
```python
# 定义一个字典,用来保存每个学生的数据记录
students = {}
# 定义一个函数,用来输入5个学生的数据记录
def input_data():
for i in range(5):
# 输入学号、姓名和3门课程的成绩
sid = input("请输入学号:")
name = input("请输入姓名:")
score1 = int(input("请输入第1门课程的成绩:"))
score2 = int(input("请输入第2门课程的成绩:"))
score3 = int(input("请输入第3门课程的成绩:"))
# 保存学生数据记录到字典中
students[sid] = {"name":name, "scores":[score1, score2, score3]}
# 定义一个函数,用来输出每位学生的学号、姓名、3门课程成绩及平均分
def print_data():
for sid in students:
# 获取学生姓名和3门课程成绩
name = students[sid]["name"]
scores = students[sid]["scores"]
# 计算平均分
avg_score = sum(scores) / len(scores)
# 输出学生数据记录
print("学号:{},姓名:{},课程1成绩:{},课程2成绩:{},课程3成绩:{},平均分:{}".format(sid, name, scores[0], scores[1], scores[2], avg_score))
# 定义一个函数,用来寻找平均分最高的学生信息
def max_score():
max_avg_score = 0
max_sid = ""
for sid in students:
# 获取学生姓名和3门课程成绩
name = students[sid]["name"]
scores = students[sid]["scores"]
# 计算平均分
avg_score = sum(scores) / len(scores)
# 如果平均分比当前最高分更高,则更新最高分和对应的学生编号
if avg_score > max_avg_score:
max_avg_score = avg_score
max_sid = sid
# 输出平均分最高的学生信息
print("平均分最高的学生是:学号:{},姓名:{},平均分:{}".format(max_sid, students[max_sid]["name"], max_avg_score))
# 调用函数,执行程序
input_data()
print_data()
max_score()
```
您可以直接复制上述代码并运行,也可以根据自己的需求进行修改。希望对您有所帮助!
阅读全文