1.效果图
2.python code:
class studentSys(object): ''' _init_(self) 被称为类的构造函数或初始化方法, self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 ''' def _init_(self): #全局变量 self.students = []#列表[{"name":"刘备", "age":20, "sex":"男"},{"name":"关羽", "age":20, "sex":"男"}] "打印输入提示信息" def print_menu(self): #输出50个连续的等于号(50个=) print("="*50) # \t : 横向制表符 print("="*50 + \ "\n\t\t学生管理系统1.00版本" + \ "\n\t\t1:添加学生信息" + \ "\n\t\t2:删除学生信息" + \ "\n\t\t3:修改学生信息" + \ "\n\t\t4:查找学生信息" + \ "\n\t\t5:显示学生信息" + \ "\n\t\t6:退出学生管理系统\n" + \ "="*50 ) #打印一行空白 print("\n") #添加学生信息的函数 def add_info(self): #修改全局变量 #global students #字典 student = {} name = input("请输入要添加学生的姓名:") age = input("请输入要添加学生的年龄:") sex = input("请输入要添加学生的性别:") phone = input("请输入要添加学生的电话:") QQ = input("请输入要添加学生的QQ:") #往字典里添加输入的数据 student["name"] = name student["age"] = age student["sex"] = sex student["phone"] = phone student["QQ"] = QQ #把字典添加到列表(末尾)中去 self.students.append(student) self.save_info() #删除学生信息函数 def delete_info(self): name = input("请输入要删除的学生姓名:") for student in self.students: if name == student.get("name"): self.students.remove(student) self.save_info() self.show_info() #修改学生信息函数 def modify_info(self): name = input("请输入要修改学生的姓名:") for student in self.students: if name == student.get("name"): info = input("请输入要修改的信息标题:") if info == "name": new_name = input("请输入新的姓名:") student["name"] = new_name elif info == "age": new_age = input("请输入新的年龄:") student["age"] = new_age elif info == "sex": new_sex = input("请输入新的性别:") student["sex"] = new_sex elif info == "phone": new_phone = input("请输入新的电话:") student["phone"] = new_phone elif info == "QQ": new_QQ = input("请输入新的QQ:") student["QQ"] = new_QQ else: print("请输入含有的信息标题") self.save_info() self.show_info() #查找学生信息函数 def find_info(self): name = input("请输入要查找的学生姓名:") flag = 0 #找到一个就是找到了 for student in self.students: if name == student.get("name"): print(student) print("\t" + student["name"] +\ "\t\t" + student["age"] +\ "\t\t" + student["sex"] +\ "\t\t" + student["phone"] +\ "\t\t" + student["QQ"]) flag = 1 #循环结束后判断 if flag == 0: print("无此人信息") #显示学生信息函数 def show_info(self): print("\t\t\t\t当前学生信息\n" + \ "-"*80 + "\n\t姓名\t\t年龄\t\t性别\t\t电话\t\tQQ") for student in self.students: print("\t" + student["name"] +\ "\t\t" + student["age"] +\ "\t\t" + student["sex"] +\ "\t\t" + student["phone"] +\ "\t\t" + student["QQ"]) print("-"*80,"\n") #保存信息 def save_info(self): f = open("students.txt","w")#每次保存都会覆盖,覆盖保存w f.write(str(self.students))#保存 f.close()#关闭资源 #读取运行时的信息 def load_info(self): f = open("students.txt","a+") f.seek(0) content = f.read() if len(content) > 0: self.students = eval(content) f.close()#关闭资源 #定义一个入口函数 def main(self): self.print_menu() self.load_info() while True: print("\t\t操作指令\n" + \ "~"*50 + \ "\n 1:添加|2:删除|3:修改|4:查找|5:显示|6:退出 \n" + \ "~"*50 ) #输入的内容都当做字符串 input_num = input("请按照提示输入相应的指令:") #判断用户输入的内容 if input_num == "1": #print("增加\n") self.add_info() elif input_num == "2": #print("删除\n") self.delete_info() elif input_num == "3": #print("修改\n") self.modify_info() elif input_num == "4": #print("查找\n") self.find_info() elif input_num == "5": #print("显示\n") self.show_info() elif input_num == "6": print("退出\n") break else: print ("请不要瞎玩,这里需要输入对应的数字!\n") #创建实例对象,调用方法 studentSys().main()
3.文件和软件IDLE (在IDLE编码后运行即可增删改查)
拓展:如果报错 :AttributeError: 'studentSys' object has no attribute 'students' , 那就再重新定义下 students