10. 按成绩排序功能的实现
实现方法
- 班级相关模块:
class_room.py
import student
from student import Student
import tools
class ClassRoom:
'''班级类型'''
def __init__(self, class_name):
self.class_name = class_name # 班级名称
self.student = [] # 保存学生信息
...
def list_student_info_order_by_chinese_score(self):
'''按语文成绩从高到低显示学生成绩'''
def get_chinese_score(a_student):
return a_student.chinese_score
result = sorted(self.student, key=get_chinese_score, reverse=True)
print('按语文成绩排序的列表')
self.list_all_student_info(result)
def list_student_info_order_by_math_score(self):
'''按数学成绩从高到低显示学生成绩'''
def get_chinese_score(a_student):
return a_student.chinese_score
result = sorted(
self.student,
key=lambda a_stu: a_stu.math_score,
reverse=True)
print('按数学成绩排序的列表')
self.list_all_student_info(result)
...
def student_manager(self):
'''此函数用来学生数据'''
while True:
self.show_class_menu()
sel = input('请选择:')
match sel:
case '1': # 1) 添加学生
self.add_student()
case '2': # 2) 修改学生的语文成绩
self.modify_chinese_score()
case '3': # 3) 修改学生的数学成绩
self.modify_math_score()
case '4': # 4) 删除学生
self.del_student()
case '5': # 5) 列出所有学生的成绩
self.list_all_student_info(self.student)
case '6': # 6) 按语文成绩从高到低显示学生成绩
self.list_student_info_order_by_chinese_score()
case '7': # 7) 按数学成绩从高到低显示学生成绩
self.list_student_info_order_by_math_score()
case '0': # 0) 退出班级
return
case _:
print('不存在的选项,请重新输入')
import time
time.sleep(2) # 让程序睡眠2秒
if __name__ == '__main__':
cr1 = ClassRoom('一年1班')
cr1.student.append(Student('张三', 100, 61))
cr1.student.append(Student('李四', 70, 81))
cr1.student.append(Student('王五', 90, 71))
cr1.student.append(Student('赵六', 80, 91))
cr1.student_manager()