-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstudent_exception
87 lines (67 loc) · 2.37 KB
/
student_exception
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class Human:
def __init__(self, gender, age, first_name, last_name):
self.gender = gender
self.age = age
self.first_name = first_name
self.last_name = last_name
def __str__(self):
return f'{self.first_name} {self.last_name}, age:{self.age}, gender:{self.gender}'
class Student(Human):
def __init__(self, gender, age, first_name, last_name, record_book):
super().__init__(gender, age, first_name, last_name)
self.record_book = record_book
def __str__(self):
return f'{super().__str__()}, {self.record_book}'
class Group:
def __init__(self, number):
self.number = number
self.group = set()
def add_student(self, student):
if len(self.group) < 10:
self.group.add(student)
else:
raise Exception("Maximum student appeared")
def delete_student(self, last_name):
res = self.find_student(last_name)
self.group.discard(res)
def find_student(self, last_name):
for student in self.group:
if student.last_name == last_name:
return student
return None
def __str__(self):
all_students = ''
for student in self.group:
all_students += f'{str(student)}\n'
return f'Number:{self.number}\n{all_students} '
st1 = Student('Male', 30, 'Steve', 'Jobs', 'AN142')
st2 = Student('Female', 25, 'Liza', 'Taylor', 'AN145')
st3 = Student('Male', 25, 'John', 'Graven', 'AN145')
st4 = Student('Female', 25, 'Cassandra', 'Taylor', 'AN145')
st5 = Student('Female', 25, 'Ann', 'Taylor', 'AN145')
st6 = Student('Female', 25, 'Alice', 'Taylor', 'AN145')
st7 = Student('Male', 25, 'Josh', 'Rob', 'AN145')
st8 = Student('Female', 25, 'Emily', 'Taylor', 'AN145')
st9 = Student('Female', 25, 'Yuki', 'Taylor', 'AN145')
st10 = Student('Female', 25, 'Samantha', 'Taylor', 'AN145')
st11 = Student('Male', 25, 'Alex', 'Mercer', 'AN145')
st12 = Student('Female', 25, 'Jinn', 'Taylor', 'AN145')
gr = Group('PD1')
gr.add_student(st1)
gr.add_student(st2)
gr.add_student(st2)
gr.add_student(st3)
gr.add_student(st4)
gr.add_student(st5)
gr.add_student(st6)
gr.add_student(st7)
gr.add_student(st8)
gr.add_student(st9)
gr.add_student(st10)
gr.add_student(st11)
gr.add_student(st12)
print(gr)
gr.find_student('Jobs')
gr.find_student('Jobs2') # None
gr.delete_student('Taylor')
print(gr) # Only one student