在学生信息系统中实现批量功能的添加,比如批量添加,批量修改,批量删除等
# coding:utf-8 """ 学生信息库 """ # TODO: 这样高亮表示我们还有没有做的事情 class StudentInfo(object): def __init__(self, students): self.students = students def get_by_id(self, student_id): return self.students.get(student_id) def get_all_students(self): for id_, value in self.students.items(): print('学号: {}, 姓名: {}, 年龄: {}, 性别: {}, 班级: {}'.format( id_, value['name'], value['age'], value['sex'], value['class_number'] )) return self.students def add(self, **student): check = self.check_user_info(**student) if check != True: print(check) return self.__add(**student) def adds(self, new_students): for student in new_students: check = self.check_user_info(**student) if check != True: print(check, student.get('name')) continue self.__add(**student) def __add(self, **student): new_id = max(self.students) + 1 self.students[new_id] = student def delete(self, student_id): if student_id not in self.students: print('{}并不存在'.format(student_id)) else: user_info = self.students.pop(student_id) print('学号是{}, {}同学的信息已经被删除了'.format(student_id, user_info['name'])) def deletes(self, ids): for id_ in ids: if id_ not in self.students: print(f'{id_} 不存在学生库中') continue student_info = self.students.pop(id_) print(f'学号{id_} 学生{student_info["name"]} 已被移除') def update(self, student_id, **kwargs): if student_id not in self.students: print('并不存在这个学号: {}'.format(student_id)) check = self.check_user_info(**kwargs) if check != True: print(check) return self.students[student_id] = kwargs print('同学信息更新完毕') def updates(self, update_student): for student in update_student: id_ = list(student.keys())[0] if id_ not in self.students: print(f'学号{id} 不存在') continue user_info = student[id_] check = self.check_user_info(**user_info) if check != True: print(check) continue self.students[id_] = user_info print('所有用户信息更新完成') def search_users(self, **kwargs): values = list(self.students.values()) key = None value = None result = [] if 'name' in kwargs: key = 'name' value = kwargs[key] elif 'sex' in kwargs: key = 'sex' value = kwargs[key] elif 'class_number' in kwargs: key = 'class_number' value = kwargs[key] elif 'age' in kwargs: key = 'age' value = kwargs[key] else: print('没有发现搜索的关键字') return for user in values: # [{name, sex, age, class_number}, {}] if value in user[key]: result.append(user) return result def check_user_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 students = { 1: { 'name': 'dewei', 'age': 33, 'class_number': 'A', 'sex': 'boy' }, 2: { 'name': '小木', 'age': 10, 'class_number': 'B', 'sex': 'boy' }, 3: { 'name': '小曼', 'age': 19, 'class_number': 'A', 'sex': 'girl' }, 4: { 'name': '小高', 'age': 18, 'class_number': 'C', 'sex': 'boy' }, 5: { 'name': '小云', 'age': 14, 'class_number': 'B', 'sex': 'girl' } } if __name__ == '__main__': student_info = StudentInfo(students) user = student_info.get_by_id(1) student_info.add(name='xy', age=12, class_number='A', sex='boy') users = [ {'name': 'xiaomi', 'age': 17, 'class_number': 'B', 'sex': 'boy'}, {'name': 'xyz', 'age': 18, 'class_number': 'C', 'sex': 'girl'} ] student_info.adds(users) student_info.get_all_students() print('------------------------------') student_info.deletes([7, 8]) student_info.get_all_students() print('------------------------------') student_info.updates([ {1: {'name': 'wang', 'age': 10, 'class_number': 'A', 'sex': 'boy'}}, {2: {'name': 'zhang', 'age': 11, 'class_number': 'A', 'sex': 'girl'}} ]) student_info.get_all_students() print('------------------------------') result = student_info.search_users(name='小') print(result) print('------------------------------') result = student_info.search_users(name='') print(result)