简介
前两次主要是介绍了学生管理系统的架构和功能,简单的介绍了如何通过 python 语言,介绍了如何实现录入学生信息和删除学生信息功能。本文主要介绍如何修改学生信息。
修改学生信息功能模块
实现修改学生信息功能的步骤:
首先从控制台录入学生的 ID,录入成功之后,看看在文件中是否存在学生信息。若存在,则代表录入成功,并且通过 ID 在磁盘文件中找到学生信息,并且进行修改。
具体实现
编写主函数中调用的修改学生信息的函数 modify()
def modify(): # 修改学生信息
show()
if os.path.exists(filename): # 判断这个磁盘文件是否存在
with open(filename, 'r', encoding='utf-8') as rfile:
student_old = rfile.readlines() # 将读到的信息,放到列表中
else:
return
student_id = input('请输入要修改学生的Id:')
# if student_id=='':
# print('输入错误,请重新输入:')
with open(filename, 'w', encoding='utf-8') as wfile:
for item in student_old: # 遍历在学生文件中读取的学生信息
d = dict(eval(item)) # 读取的是字符串。用eval进行转换成字典类型
if d['id'] == student_id: # 判断id是否与列表中的id相等
print('找到学生信息了,可以进行修改他的相关信息了!')
while True:
try:
d['name'] = input('请输入姓名:')
d['english'] = input('请输入英语成绩:')
d['python'] = input('请输入python成绩:')
d['java'] = input('请输入Java成绩:')
except:
print('您的输入有误,请重新输入!!!')
else:
break
wfile.write(str(d) + '\n') # 输入的没有错误,将信息进行写入,并且转成str类型
print('修改成功!!!')
else:
print('没有查找到该学生的信息!!!')
wfile.write(str(d) + '\n') # 没有找到,把原来的信息写进去
answer = input('是否要继续修改其他学生的信息?y/n')
if answer == 'y' or answer == 'Y':
modify()
复制代码
调用 show()函数显示学生信息
def show(): # 显示所有学生信息
student_lst = [] # 先定义一个学生列表
if os.path.exists(filename): # 查看文件是否存在
with open(filename, 'r', encoding='utf-8') as rfile: # 文件存在用只读的方式打开
student = rfile.readlines() # 读文件,将读到的文件赋值给student
for item in student: # 遍历student
student_lst.append(eval(item)) # 将item进行for循环遍历的东西,添加到studengt_lst的列表中,并且将字符串转换成字典
if student_lst: # 如果student_lst的列表不为空,则进行展示
show_student(student_lst)
else:
print('暂未保存过数据')
复制代码
后记
本文主要是介绍了如何通过 python 语言实现修改学生信息的功能,并且介绍了 show()函数的作用。这三次笔记,已经实现了学生管理系统大部分的功能,其中包括录入学生信息功能,修改学生信息功能,删除学生信息功能以及通过 show()函数显示学生信息。下一次笔记将介绍查找学生信息,查询学生总人数等功能。
评论