学生管理系统
要求如下:
1.添加学员,2.修改学员,3.查询学员,4.删除学员,0.退出程序
大列表嵌套小列表,小列表存储一个学员的全部信息,如下:
student_list = [['张三','22','男','110'],['李四','22','男','110'],['王五','22','男','110']] 获取信息参考代码如下: # 例如要取出张三这个学员的信息 # 1.取出张三这个学员的小列表 student1 = student_list[0] # 2.再从小列表中根据索引取出姓名、年龄、性别、电话 name = student1[0] age = student1[1] sex = student1[2] phone = student1[3] 完整代码如下: #添加 def add_stu(): print('*********添加学员**********') name = input('请输入学员姓名:') age = input('请输入学员的年龄:') sex = input('请输入学员性别(男/女):') phone = input('请输入手机号:') student = [name, age, sex, phone] student_list.append(student) #查询 def query_stu(type): print('*************%s学员**************'%type) print('1.查询所有学员') print('2.输入学员姓名查询 ') num = int(input('选择操作:')) if num == 1: for x in range(0, len(student_list)): student = student_list[x] name = student[0] age = student[1] sex = student[2] phone = student[3] print('序号:%s 姓名:%s 年龄:%s 性别:%s 手机号:%s' % (x, name,age,sex,phone)) return student else: name = input('请输入学员姓名:') while 1: rs = False for student in student_list: if student[0] == name: index = student_list.index(student,0,len(student_list)) print('序号:%s 姓名:%s 年龄:%s 性别:%s 手机号:%s' % (index,student_list[index][0],student_list[index][1],student_list[index][2],student_list[index][3])) rs = True if rs == False: name = input('未找到学员,请重输:') else: break return student #封装判断选择序号是否符合范围的函数 #带返回值的函数,函数执行完会返回一个结果,可以声明变量接受这个结果 def select_num(type): index = input('请选择要%s的学员序号:'%type) index = int(index) while index not in range(0, len(student_list)): index = input('选择的学员不存在,请重选:') index = int(index) #返回选择的序号 return index #修改 def alter_stu(): if len(student_list) == 0: print('没有学员信息,无法进行修改操作!') #强制结束函数的执行,return下面的代码都不会再执行 return query_stu('修改') index = int(select_num('修改')) student = student_list[index] new_name = input('请输入修改后的姓名(%s):'%student[0]) new_age = input('请输入修改后的年龄(%s):'%student[1]) new_sex = input('请输入修改后的性别(%s):'%student[2]) new_phone = input('请输入修改后的手机号(%s):'%student[3]) student[0] = new_name student[1] = new_age student[2] = new_sex student[3] = new_phone print('修改学员成功') #删除 def dele_stu(): query_stu('删除') index = select_num('删除') rs = input('是否真的删除(y/n):') if rs == 'y': student_list.pop(index) print('删除成功') else: print('删除数据操作已取消!') #存储至本地文件 def save_data(): file_handle = open('student.v2.txt','w') for student in student_list: #把列表中的数据用空格分开拼接为一个字符串 s = ' '.join(student) file_handle.write(s) file_handle.write('\n') file_handle.close() #引入python内置函数os import os #读取文件内容 def read_data(): #判断文件是否存在,如果存在,在做打开文件的操作 #如果文件存在返回true,否则返回False rs = os.path.exists('student.v2.txt') if rs == True: # 1,打开文件 file_handle = open('student.v2.txt',mode='r') #2.读取所有行 contents = file_handle.readlines() #3.取出每一个姓名 for msg in contents: #去除\n msg = msg.strip('\n') #使用 空格分割字符串 student = msg.split(' ') #将小列表添加到大列表中 student_list.append(student) file_handle.close() #声明一个大列表,存放学员姓名 student_list = [] read_data() while 1: print('****************学员管理系统*****************') print('*****************1.添加学员*****************') print('*****************2.修改学员*****************') print('*****************3.查询学员*****************') print('*****************4.删除学员*****************') print('*****************0.退出程序*****************') num = input('请选择你的操作:') num = int(num) while num not in range(0,5): num =int(input('您选择的选项不存在,请重选:')) if num == 1: #添加学员 add_stu() save_data() elif num == 2: #修改学员 alter_stu() save_data() elif num == 3: #查询学员 query_stu('查询') elif num == 4: #删除学员 print('1.通过序号删除学员') print('2.删除全部学员') print('3.根据学员姓名删除') num = input('请选择操作:') num = int(num) while num not in range(1,4): num = int(input('所输选项不存在,请重输:')) if num == 1: dele_stu() elif num == 2: rs = input('是否真的删除(y/n):') if rs == 'y': student_list.clear() print('删除成功') else: print('删除数据操作已取消!') else: name = input('请输入想要删除学员的姓名:') rs = input('是否真的删除(y/n):') if rs == 'y': while 1: rs = False for student in student_list: if student[0] == name: student_list.remove(student) print(student_list) print('删除成功') rs = True if rs == False: # print('未找到请重新输入') name = input('未找到学员,请重输:') else: break else: print('删除数据操作已取消!') save_data() else: print('退出程序') break