创建一个班级,实现对学生的增删查询

# 学生类
class Student:
    def __init__(self, name, num, age, score):
        self.name = name
        self.num = num
        self.age = age
        self.score = score

    def __str__(self):
        return '姓名:{} 学号:{} 年龄:{} 成绩:{}'.format(self.name, self.num, self.age, self.score)


# 班级类
class Class:
    def __init__(self, name):
        self.name = name
        self.stu_list = []
        self.stu_dict = {}

    # 添加学生
    def add_stu(self, stu):
        self.stu_list.append(stu)
        self.stu_dict[stu.num] = stu

    # 删除学生
    def del_stu(self, num):
        # 从字典中弹出并删除
        s = self.stu_dict.pop(num)#字典跟列表都删除
        # 从列表中删除
        self.stu_list.remove(s)

    # 学生排序
    def sort_stu(self, key=None, reverse=False):
        self.stu_list.sort(key=key, reverse=reverse)

    # 查找学生
    def get_stu(self, num):
        return self.stu_dict.get(num)

    # 展示学生信息
    def show_stu(self):
        for s in self.stu_list:
            print(s)


from random import randint

# 创建班级对象
c = Class('ZZ-JY-PY1805')

# 添加学生
for i in range(10):
    name = 'stu' + str(i+1)
    num = 100 + i
    age = randint(20, 30)
    score = randint(0, 100)
    # 创建学生对象
    stu = Student(name, num, age, score)
    # 添加到班级对象中
    c.add_stu(stu)

# 按照成绩
c.sort_stu(key=lambda s: s.score, reverse=True)

# 展示学生信息
c.show_stu()

s = c.get_stu(104)
print(s)

猜你喜欢

转载自blog.csdn.net/LoveL_T/article/details/81544646