采用字典的方式,完成一个班级同学(5个人以上)的课程(5门课以上)成绩的存储工作,并能按照姓名,学号,各科成绩进行从大到小或者从小到大的排序输出。
时间: 2023-05-22 07:07:19 浏览: 71
好的,让我来帮您完成这项任务。首先,您可以采用 Python 中的字典来存储班级同学的成绩。下面是一个简单的示例代码:
```
# 定义班级同学名单及其对应的成绩字典
scores = {
"lin": {"math": 80, "english": 90, "chinese": 95, "science": 87, "history": 78},
"chen": {"math": 85, "english": 92, "chinese": 78, "science": 90, "history": 82},
"zhang": {"math": 92, "english": 88, "chinese": 93, "science": 85, "history": 87},
"wang": {"math": 76, "english": 85, "chinese": 79, "science": 83, "history": 88},
"li": {"math": 88, "english": 86, "chinese": 84, "science": 91, "history": 90}
}
# 按照学号从小到大排序
sorted_scores_by_id = sorted(scores.items(), key=lambda x: x[0])
print("按照学号从小到大排序的成绩单:")
for name, score in sorted_scores_by_id:
print(f"{name}: {score}")
# 按照姓名从小到大排序
sorted_scores_by_name = sorted(scores.items(), key=lambda x: x[0])
print("按照姓名从小到大排序的成绩单:")
for name, score in sorted_scores_by_name:
print(f"{name}: {score}")
# 按照数学成绩从大到小排序
sorted_scores_by_math = sorted(scores.items(), key=lambda x: x[1]["math"], reverse=True)
print("按照数学成绩从大到小排序的成绩单:")
for name, score in sorted_scores_by_math:
print(f"{name}: {score['math']}")
```
在这个代码中,我们使用了 Python 中的 sorted 函数来对成绩进行排序,sorted 函数的第一个参数是需要排序的字典,第二个参数是 key 函数,用来指定排序的规则,默认是从小到大排序,如果需要从大到小排序,需要加上 reverse=True 参数。最后,我们使用 for 循环遍历排好序的成绩单,并输出每个同学的成绩。