座位还有一个,但添加不进去
class xs:
def init(self,xh,mz,nl,xb):
self.xh=xh#学号
self.mz=mz
self.nl=nl
self.xb=xb
class banji:
# 班级构造
def init(self, sl):
self.sl=sl#数量
self.sl2=sl#剩余数量
self.xlist=[]
def addxs(self,xs):
#班级剩余人数大于学生数量,才能成功放入
if self.sl2 >= len(self.xlist) :
if xs.nl>12:
self.xlist.append(xs)
self.sl2 -= 1
return True
else:
print(xs.mz,"的年龄不符合入班要求", sep="", end="。 \n")
(len(self.xlist)-1)
else:
print("班级只剩", self.sl2, "个座位,不能再加入", xs.mz, sep="", end="。 \n")
def info(self):
print("-------------班级信息-------------")
print("班级总人数:", self.sl)
print("目前班级的剩余人数:", self.sl2)
print("班级的学生有:", )
for xs in self.xlist:
print(xs.mz, "的","学号:", xs.xh,"年龄", xs.nl,"性别", xs.xb)
banji=banji(3)
xs1 = xs(1001,"小明",12,"男")
xs2 = xs(1002,"小刚",13,"男")
xs3 = xs(1003,"小红",14,"女")
xs4=xs(1004,"小宁",15,"女")
banji.addxs(xs1)
banji.addxs(xs2)
banji.addxs(xs3)
banji.info()
banji.addxs(xs4)
banji.info()
尝试过用删除列表元素,但还是添加不进去
满足题目要求就行
为什么要剩余人数大于学生数才能加呢?
应该是这样
if sl2 > 0:
# 添加学生
...
else:
print(...)
if self.sl2 >= len(self.xlist) 为什么要大于列表长度,不应该是大于0吗
if self.sl2 >= self.sl - len(self.xlist) :
大致如下: 其它相应函数请自行根据需要调整
class Student:
def __init__(self,sn,name,age,sex):
self.sn = sn
self.name = name
self.age = age
self.sex = sex
def __repr__(self):
return f'{self.sn},{self.name},{self.age},{self.sex}'
class Class:
def __init__(self):
self.Students = []
def print(self):
for i in self.Students:
print(i)
def add(self,student):
if type(student)==Student:
if student in self.Students:
print('此学生,已存在')
else:
if student.age>12:
if len(self.Students)>2:
print('班级已满,加不进学生了')
else:
self.Students.append(student)
else:
print('此学生年龄太小,不能进班')
以下是测试经过:
>>> a = Student(1,'a',15,1)
>>> b = Student(2,'b',12,1)
>>> c = Student(3,'c',14,0)
>>> d = Student(4,'d',15,0)
>>> C = Class()
>>> C.add(a)
>>> C.add(b)
此学生年龄太小,不能进班
>>> b = Student(2,'b',13,1)
>>> C.add(b)
>>> C.add(b)
此学生,已存在
>>> C.add(c)
>>> C.add(d)
班级已满,加不进学生了
>>> C.print()
1,a,15,1
2,b,13,1
3,c,14,0
↓↓↓如有帮助请点个采纳,谢谢!