百度网站建设要多少钱,一般做海报的图片跟哪个网站下载,drupal还是wordpress好,wordpress开发企业网站新增学生显示学生查找学生删除学生存档到文件
约定好数据的存储格式#xff1a;
约定把数据保存在和py文件同级目录中#xff0c;文件名为record.txt
文件内容按照行文本的方式来表示
首先这是一个文本文件#xff0c;里面包含了很多行#xff0c;每一行代表一个学生
…新增学生显示学生查找学生删除学生存档到文件
约定好数据的存储格式
约定把数据保存在和py文件同级目录中文件名为record.txt
文件内容按照行文本的方式来表示
首先这是一个文本文件里面包含了很多行每一行代表一个学生
学生的信息之间使用\t来分割水平制表符
编写代码
save存档
load加载
# 实现一个命令行版本的学生管理系统
import sys
import os.path# 使用这个全局变量来管理学生所有的信息
# 这个列表里面的每个元素都是一个“字典”每个字典分别表示一个同学
students []def save():用于存档:return:# 此处的路径不是以D盘开头的“绝对路径”而是相对路径# 此时这个写法的含义是让record.txt和当前的student_guanli.py在同一个目录里with open(record.txt, w, encodingutf8) as f:for s in students:f.write(f{s[studentId]}\t{s[name]}\t{s[gender]}\t{s[className]}\n)print(f[存档成功] 共存储了{len(students)}条记录)def load():用于读档:return:# 如果存档文件不存在直接跳过读档流程# 为了避免读方式打开文件的时候文件不存在引起异常if not os.path.exists(record.txt):return# 读档的时候要保证先把旧的数据清理干净global studentsstudents []with open(record.txt, r, encodingutf8) as f:for line in f:# 针对这一行数据按照\t进行切分操作# 切分之前去除末尾的换行line line.strip() # 去掉字符串开头和末尾的空白符——空格换行回车...tokens line.split(\t)if len(tokens) ! 4:print(f当前行格式存在问题Line{line})continuestudent {studentId: tokens[0],name: tokens[1],gender: tokens[2],className: tokens[3]}students.append(student)print(f[读档成功] 共读取了{len(students)}条记录)def menu():print(1.新增学生)print(2.显示学生)print(3.查找学生)print(4.删除学生)print(0.退出程序)choice input(请输入您的选择)return int(choice)def insert():print([新增学生] 开始)studentId input(请输入学生的学号)name input(请输入学生的姓名)gender input(请输入学生的性别)if gender not in (男, 女):print(性别不符合要求新增失败)returnclassName input(请输入学生的班级)# 使用一个字典把上述信息聚合起来student {studentId: studentId,name: name,gender: gender,className: className}global studentsstudents.append(student)# 增加保存操作save()print([新增学生] 完毕)def show():# 遍历全局变量的这个列表把每个学生的信息打印出来print([显示学生] 开始)for s in students:print(f[{s[studentId]}]\t{s[name]}\t{s[gender]}\t{s[className]})print(f[显示学生] 完毕共显示{len(students)}条数据)def find():# 根据学生姓名来进行查找print([查找学生] 开始)name input(请输入要查找的学生姓名)count 0for s in students:if name s[name]:print(f[{s[studentId]}]\t{s[name]}\t{s[gender]}\t{s[className]})count 1print(f[查找学生] 结束共找到了{count}个匹配的同学)def delete():print([删除学生] 开始)studentId input(请输入要删除学生的学号)# 看看学号对应的同学是哪个字典然后把这个字典从列表上处即可for s in students:if studentId s[studentId]:print(f删除{s[name]}同学的信息!)students.remove(s)save()print([删除学生] 结束)def main():入口函数:return:# 通过控制台和用户进行交互print(-------------------------------)print( 欢迎来到学生管理系统 )print(-------------------------------)# 在程序启动的时候调用loadload()while True:# 通过menu函数打印菜单项choice menu()if choice 1:# 新增学生insert()elif choice 2:# 显示学生show()elif choice 3:# 查找学生find()elif choice 4:delete()elif choice 0:# 退出程序print(goodbye!)sys.exit(0)else:print(您的输入有误请重新输入)# 需要进入下次循环# continuemain()