设计一个学生类,一个班级类,实现向班级中添加,删除,查看学生,按照指定顺序排序。(初学到面向对象请多指教)

建立学生类

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.reverse(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()

查找num = 104的学生

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

猜你喜欢

转载自blog.csdn.net/tianxuanzhiren_hou/article/details/83210953