self. 才是属性被保存,能够被实例化使用,否则只是局部变量
-
pop
:- 使用索引删除元素,并且需要返回被删除的元素。
- 默认删除列表中的最后一个元素。
-
remove
:- 按值删除元素,不需要知道索引。
- 如果列表中有多个相同的值,
remove
只会删除第一个匹配的值
在循环中,如果只要有一个符合要求就行用return ,因为在都不符合要求再在后面打印语句,用break不会终止for循环之外的,要寻找所有for循环里面有没有,就不用用flag另外标记了
class Student:
def __init__(self, name, age, sex):
self.stu_info = {'name': name, 'age': age, 'sex': sex}
class System:
def __init__(self):
self.stu_list = []
def show_info(self):
print("1.添加学生",
"2.删除学生",
"3.修改学生信息",
"4.查询单个学生信息",
"5.查询所有学生信息",
"6.退出系统")
def insert_student(self):
name = input('请输入学生姓名')
for i in self.stu_list:
if i['name'] == name:
print('系统已存在')
return
age = input('请输入学生年龄')
sex = input('请输入学生性别')
s = Student(name, age, sex)
self.stu_list.append(s.stu_info)
def delete_student(self):
name = input('请输入要删除学生姓名')
for i in self.stu_list:
if i['name'] == name:
self.stu_list.remove(i)
print('删除完毕')
return
print('系统中不存在这个人')
def modify_student(self):
name = input('请输入要修改学生姓名')
for i in self.stu_list:
if i['name'] == name:
i['age'] = input('请输入新的年龄')
print('修改完毕')
return
def query_one_student(self):
name = input('请输入要查询学生姓名')
for i in self.stu_list:
if i['name'] == name:
print(i)
return
print(f'系统中没有姓名叫{name}的学生')
def __str__(self):
return f"{self.stu_list}"
if __name__ == '__main__':
system = System()
while True:
system.show_info()
opt = input('请输入要选项')
if opt == '1':
system.insert_student()
elif opt == '2':
system.delete_student()
elif opt == '3':
system.modify_student()
elif opt == '4':
system.query_one_student()
elif opt == '5':
print(system)
else:
break