import os def save(): """ 保存数据到本地文件 :return: None """ # 1.打开文件 filehandle = open('1.txt', 'w') # 遍历每一个学员姓名,写入姓名后,再写入换行符\n for x in range(0, len(students)): stu = students[x] name = stu[0] age = stu[1] sex = stu[2] phone = stu[3] filehandle.write('姓名:') filehandle.write(name) filehandle.write(',年龄:') filehandle.write(age) filehandle.write(',性别:') filehandle.write(sex) filehandle.write(',手机号:') filehandle.write(phone) filehandle.write('\n') # 3.关闭文件 filehandle.close() def read(): """ 读取本地文件数据 :return: None """ # 1.打开文件 filehandle = open('1.txt', 'r') # 2.读取数据 result = filehandle.readlines() # 3.去除姓名中的\n,并且将去除后\n后的姓名存入students列表中 for name in result: # 去除 \n name = name.strip('\n') # 去除\n的数据存储students大列表中 students.append(name) # 关闭文件 filehandle.close() # 建一个学员信息总列表 students = [] stud = [] # 添加学员信息功能 def add_stu(): """ (函数功能描述)添加学员信息 :return:None """ # 添加学员名字 注意字符串类型 和数字类型 # 循环添加 while True: name = input('请输入添加的学员姓名:') age = input('请输入学员的年龄:') sex = input('请输入学员的性别:') while True: if sex != '男' and sex != '女': sex = input('请正确输入学员的性别(男/女):') else: break phone = input('请输入学员的手机号:') # 建一个新列表集合所有信息 stud = [name, age, sex, phone] # 将学员信息列表添加到总列表中 students.append(stud) # 完成添加 输出:添加成功! print('添加成功!') is_next = input('是否继续添加? y/n') if is_next != 'y': break # 修改学员信息功能 def modify_stu(): """ 修改学员信息 :return: None """ if len(students) == 0: print('* 没有学员信息,请稍后修改 *') # return 强制结束函数执行,return之后的代码不会再执行 return # 输出所有的学员及学员索引(从1开始输出) for x in range(0, len(students)): stu = students[x] name = stu[0] age = stu[1] sex = stu[2] phone = stu[3] print('*学号:%s 学员姓名:%s 学员年龄:%s 学员性别:%s 学员电话:%s *' % (x+1, name, age, sex, phone)) # 选择要修改的学员索引,判断索引是否在范围 y = int(input('请输入要修改的学员学号:')) if y > len(students) or y < 1: y = int(input('学号不存在,请重新输入:')) else: # 修改学员信息 stu = students[y-1] name = stu[0] age = stu[1] sex = stu[2] phone = stu[3] print('要修改的学员信息如下:') a = input('学员修改后的姓名:%s'%name) b = int(input('学员修改后的年龄:%s'%age)) c = input('学员修改后的性别:%s'%sex) d = int(input('学员修改后的手机号:%s'%phone)) stu1 =[a, b, c, d] students[y-1] = stu1 print('修改成功!') # 删除学员信息功能 def del_stu(): """ 删除学员信息 :return: None """ if len(students) == 0: print('* 没有学员信息,请稍后删除 *') # return 强制结束函数执行,return之后的代码不会再执行 return for x in range(0, len(students)): stu = students[x] name = stu[0] age = stu[1] sex = stu[2] phone = stu[3] print('*学号:%s 学员姓名:%s 学员年龄:%s 学员性别:%s 学员电话:%s *' % (x+1, name, age, sex, phone)) print('删除单个学员请按1,删除全部学员请按2') all = int(input('您的选择是:')) if all < 1 or all > 2: all = int(input('请重新选择:')) elif all == 1: # 选择要删除的学员索引,判断索引是否在范围 z = int(input('请输入要修改的学员学号:')) if z > len(students) or z < 1: z = int(input('学号不存在,请重新输入:')) else: is_del = input('确认要删除(%s) ? y/n:' % students[z - 1]) if is_del == 'y': z = z - 1 del students[z] print('删除成功!') break elif all == 2: # 删除全部学员 list.clear():清空列表 # pop()如果不指定索引,一直移除列表中最后一个元素 #while len(students): # students.pop() select = input('是否要删除全部学员? y/n') if select == 'y': students.clear() print('删除成功!') # 查询学员信息功能 def query(): """ 查询学员信息功能 :return: None """ #用索引的方法查询学员信息 if len(students) == 0: print('* 没有学员信息,请稍后再查 *') # return 强制结束函数执行,return之后的代码不会再执行 return for x in range(0, len(students)): stu = students[x] name = stu[0] age = stu[1] sex = stu[2] phone = stu[3] print('*学号:%s 学员姓名:%s 学员年龄:%s 学员性别:%s 学员电话:%s *' % (x+1, name, age, sex, phone)) def query_of_keyword(): """ 根据姓名关键词查找学员 :return: None """ if len(students) == 0: print('* 没有学员信息,请稍后再查 *') # return 强制结束函数执行,return之后的代码不会再执行 return # 1.输入搜索的关键词 kw = input('* 请输入要搜索的关键词: *') print('* 查找结果如下: *') #统计查找到的结果条数 count = 0 # 2.遍历大列表 for x in range(0, len(students)): # stu就是[姓名,年龄,性别,电话]小列表 stu = students[x] #判断stu小列表中的姓名 if kw in stu [0]: # 让计数+1 count += 1 print('* 学号:%s 姓名:%s 年龄:%s 性别:%s 手机号:%s'(x+1,stu[0],stu[1],stu[2],stu[3])) #如果count在循环结束之后依然是0,说明没有找到符合条件的结果 if count == 0: print('* 无结果 *') else: print('* 共搜索到%s条数据 *'&count) def query_stu(): """ 查询学员功能函数 :return: None """ print('* a.查询所有学员') print('* b.输入关键词查询') select = input('请选择查询方式:') while select != 'a' and select !='b': select = input('* 选项有误,请重选:') if select == 'a': query() read() else: query_of_keyword() while True: print('******学生管理系统2.0版本******') print('* 1.添加学员 *') print('* 2.修改学员 *') print('* 3.删除学员 *') print('* 4.查询学员 *') print('* 0.退出程序 *') select = int(input(' 您的选择是: ')) while select < 0 or select > 4: select = float(input(' 选项有误,请重新选择: ')) print('*******************************') if select == 1: add_stu() save() if select == 2: modify_stu() save() if select == 3: del_stu() save() if select == 4: query_stu() if select == 0: print('欢迎下次使用!') break
python学生管理系统2.0版本
最新推荐文章于 2022-02-13 16:29:36 发布