python 实现向班级中添加学生、删除学生、查看学生、按照指定条件排序(使用面向对象的思想)

  • 设计一个学生类

    • 属性:姓名、学号、年龄、成绩

  • 设计一个班级类

    • 属性:班级代号,所有学生

  • 要求:实现向班级中添加学生、删除学生、查看学生、按照指定条件排序

#实现向班级中添加学生、删除学生、查看学生、按照指定条件排序

class Student:                                              #定义学生类
    def __init__(self,name,school_num,age,grade):
        self.name = name
        self.school_num = school_num
        self.age = age
        self.grade = grade

    def __getitem__(self, item):                            #使其能够通过下标获取值
        return self.__dict__.get(item)

class Banji:                                                #定义班级类
    def __init__(self,num,lt):                              #lt为一个列表
        self.num = num
        self.lt = lt
    def add(self,student):                                  #增加学生方法
        self.lt.append(student)
    def shanchu(self,student):                              #删除学生方法
         self.lt.remove(student)
    def see_student(self,num,key):                          #查看学生,num为名字或学号等,key为num的类型
        for i in range(len(self.lt)):
            if num == self.lt[i][key]:
                break
        print("姓名:{},学号:{},年龄:{},成绩:{}".format(self.lt[i].name,self.lt[i].school_num,self.lt[i].age,self.lt[i].grade))
    def paixv(self,key):                                    #对学生进行排序,key为排序标准,比如按成绩排序
        for i in range(len(self.lt) - 1):
            for j in range(len(self.lt) - 1 - i):
                if self.lt[j][key] > self.lt[j + 1][key]:
                    t = self.lt[j]
                    self.lt[j] = self.lt[j + 1]
                    self.lt[j + 1] = t


#测试代码
student = Student('mao',14,18,100)
student1 = Student('chen',15,17,99)
student3 = Student('shang',22,23,99)
test = Banji(302,[])
test.add(student)
test.add(student1)
test.add(student3)
#test.shanchu(student)
#test.see_student('xynu')
#print(test.lt)
print(test.lt[1].age)
test.paixv('age')
#print(test.lt[0].age)
print(test.lt[1].age)
test.see_student('mao','name')
#test.see_student(15,'school_num')

你可能感兴趣的:(python 实现向班级中添加学生、删除学生、查看学生、按照指定条件排序(使用面向对象的思想))