# coding:utf-8
class StudentInfo(object):
def __init__(self, students):
self.students = students
# 菜单选择
def select_menu(self):
while True:
print('1,查询所有学生;2,添加一个学生;3,批量添加学生;4,根据学号查询某个学生;5,根据名字模糊查询学生;6,根据学号删除学生;7,退出;')
num = input("请根据数字选择菜单:")
if num == '1':
self.list_all_student()
if num == '2':
self.add_student(name='张紫菜', age=19, sex='boy', class_number="C")
if num == '3':
# 这里的学生数据使用了列表,当然也可以使用字典
add_students = [
{'name': 'tom', 'age': 18, 'class_number': 'A', 'sex': 'girl'},
{'name': 'Jblllie', 'age': 16, 'class_number': 'B', 'sex': 'boy'}]
self.list_add_student(add_students)
if num == '4':
self.query_student_by_id()
if num == '5':
self.query_student_by_name()
if num == '6':
self.delete_student_by_id()
if num == '7':
exit()
# 检查学生信息
def check_student_info(self, **kwargs):
if 'name' not in kwargs:
return '没有学生姓名'
if 'age' not in kwargs:
return '没有学生年龄'
if 'sex' not in kwargs:
return '没有学生性别'
if 'class_number' not in kwargs:
return '没有学生班级'
return True
# 添加学生信息(单条数据)
def add_student(self, **student):
check = self.check_student_info(**student)
if check != True:
print(check)
return
else:
self.__add(**student)
def __add(self, **student):
one_student = {'id': str(len(self.students) + 1)}
for key, value in student.items():
one_student[key] = value
self.students.append(one_student)
# 列出所有学生信息
def list_all_student(self):
if len(self.students) == 0:
print('*' * 10 + '没有学生信息'+ '*' * 10)
else:
for item in self.students:
print("学号:{id},姓名:{name}, 年龄:{age}, 班级:{class_number}, 性别:{sex}".format(id=item['id'], name=item['name'], age=item['age'], class_number=item['class_number'], sex=item['sex']))
# 批量添加学生
def list_add_student(self, student_list):
if len(student_list) == 0:
print('请输入要添加的学生')
else:
for one in student_list:
self.__add(**one)
# 根据学号查询某个学生
def query_student_by_id(self):
code = input('请输入学号:')
for item in self.students:
if item['id'] == code:
print("姓名:{},年龄:{},班级:{},性别:{}".format(item['name'], item['age'], item['class_number'], item['sex']))
break
# 根据名字模糊查询学生
def query_student_by_name(self):
name = input('请输入学生名字:')
for item in self.students:
if item['name'].find(name) != -1:
print("姓名:{},年龄:{},班级:{},性别:{}".format(item['name'], item['age'], item['class_number'], item['sex']))
# 根据学生学号id删除某个学生
def delete_student_by_id(self):
del_id = input("请输入要删除的学生学号:")
for item in self.students:
if item['id'] == del_id:
self.students.remove(item)
return
init_student = [
{'id': '1', 'name': 'None', 'age': 18, 'class_number': 'A', 'sex': 'boy'},
{'id': '2', 'name': 'Nike', 'age': 18, 'class_number': 'A', 'sex': 'boy'}
]
stu = StudentInfo(init_student)
stu.select_menu()
有更好的建议请指正,3q