三名同学选修5门课程,按总分降序输出3个同学的姓名 牛客
时间: 2024-10-24 13:09:25 浏览: 22
基于python实现的牛客网面经数据抓取源码(课程作业).zip
为了帮助您解决这个问题,假设我们有一个包含学生信息的数据结构,如`Student`类,每个学生有姓名`name`和一门课程对应的成绩`scores`列表。我们可以按照这样的步骤操作:
1. 创建一个`Score`类表示单门课程的成绩,包含学生的姓名和成绩。
2. 学生类`Student`有一个成绩字典,存储五门课程的成绩。
3. 定义一个函数`get_top_students(scores_list, n=3)`,接收一个学生列表和需要输出的学生数,对所有学生进行排序,然后返回前n名。
```python
class Score:
def __init__(self, student_name, score):
self.student_name = student_name
self.score = score
class Student:
def __init__(self, name):
self.scores = {course_id: 0 for course_id in range(1, 6)} # 假设课程ID从1到5
def calculate_total_score(student):
return sum(student.scores.values())
def get_top_students(students, n=3):
ranked_students = sorted(students, key=lambda s: calculate_total_score(s), reverse=True)
return [student.student_name for student in ranked_students[:n]]
# 示例数据
students = [
Student("小明"), # 假设每个学生有实际成绩
Student("小红"),
Student("小李")
]
top_students = get_top_students(students)
print(f"按总分降序排列前三位的同学是:{', '.join(top_students)}")
阅读全文