如何用python实现简单的学生成绩管理系统
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了如何用python实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python实现简单的学生成绩管理系统文章都会有所收获,
千家信息网最后更新 2026年11月02日如何用python实现简单的学生成绩管理系统
这篇文章主要介绍了如何用python实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python实现简单的学生成绩管理系统文章都会有所收获,下面我们一起来看看吧。
需求:
代码:
import osfilename = 'student.txt'def main(): while True: menu() choice = int(input("请选择:")) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer = input("你确定要退出吗?y/n") if answer =='y' or answer =='Y': print("谢谢使用!") break else: continue elif choice ==1: insert() elif choice ==2: search() elif choice ==3: delete() elif choice ==4: modify() elif choice ==5: sort() elif choice ==6: total() else: show()# 菜单def menu(): print("====================学生成绩管理系统=========================") print("======================功能菜单==============================") print("\t\t1、录入学生信息") print("\t\t2、查找学生信息") print("\t\t3、删除学生信息") print("\t\t4、修改学生信息") print("\t\t5、排序") print("\t\t6、统计学生人数") print("\t\t7、显示所有学生信息") print("\t\t0、退出系统") print("--------------------------------------------------------------")# 插入def insert(): student_list=[] while True: id = input('请输入ID(如1001):') if not id: break name = input('请输入姓名:') if not name: break try: english=int(input("input english grade:")) python=int(input("input python grade:")) java=int(input("input java grade:")) except: print("输入成绩无效!重新输入!") continue student = {'id':id,'name':name,'english':english,'python':python,'java':java} student_list.append(student) answer = input("是否继续添加信息!?:'y/n'") if answer == 'y': continue else: break # 调用save函数将其保存在文本当中 save(student_list) print("学生信息录入成功!")# 保存def save(lst): try: stu_txt = open(filename,'a',encoding='utf-8') except: stu_txt = open(filename,'w',encoding='utf-8') for item in lst: stu_txt.write(str(item)+'\n') stu_txt.close()# 搜索def search(): while True: student_name = input("请输入你要查找的学生姓名:") if student_name: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: student_old = rfile.readlines() else: student_old = [] if student_old: d = {} flag = False for item in student_old: d = dict(eval(item)) if d['name'] == student_name: flag = True student_show(d) else: pass else: print("无学生信息,请添加!") if flag: print("查询成功") else: print("查询失败") else: print("没有输入学生姓名!") answer = input("请问是否继续查询:y/n") if answer == "y": continue else: break# 展示个人信息def student_show(dic): format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), ))# 删除def delete(): while True: student_id = input("请输入要删除的学生ID:") if student_id: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() else: student_old=[] flag = False if student_old: with open(filename,'w',encoding='utf-8') as wfile: d={} for item in student_old: d = dict(eval(item)) if d['id']!=student_id: wfile.write(str(d)+"\n") else: flag = True if flag: print(f"{student_id}已经被删除!") else: print(f"{student_id}没有找到!") else: print("无学生信息!") break show() answer = input("是否继续删除?y/n") if answer == 'y': continue else: break else: print("请输入要删除的ID:") continue# 修改 def modify(): while True: student_id = input("请输入要修改的学生ID:") if student_id: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() else: student_old=[] if student_old: with open(filename,'w',encoding='utf-8') as wfile: d = {} for item in student_old: d = dict(eval(item)) if d['id'] == student_id: answer = input('已经找到该学生信息,是否修改:y/n?') flag = False if answer: d['name']=input("姓名:") d['english']=int(input("english:")) d['python']=int(input("python:")) d['java']=int(input("java:")) wfile.write(str(d)+"\n") flag = True else: wfile.write(str(d)+"\n") break else: wfile.write(str(d)+"\n") if flag: print("修改成功!") else: print("修改失败!") else: print("无学生信息,请添加") answer = input("请问是否继续修改?y/n") if answer == "y": continue else: break else: print("输入错误!")# 排序 def sort(): while True: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() student_new = [] d={} for item in student_old: d=dict(eval(item)) student_new.append(d) asc_and_desc = int(input("怎么排序:0 升序 1 降序:")) choice = int(input("按照什么排序:1 english 2 python 3 java 0 总成绩:")) if choice == 1: student_new.sort(key=lambda x:int(x['english']),reverse=asc_and_desc) elif choice == 2: student_new.sort(key=lambda x:int(x['python']),reverse=asc_and_desc) elif choice == 3: student_new.sort(key=lambda x:int(x['java']),reverse=asc_and_desc) elif choice == 0: student_new.sort(key=lambda x:int(x['english'])+int(x['python'])+int(x['java']),reverse=asc_and_desc) else: print("输入有误") sort() else: print("无学生信息") format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' for dic in student_new: print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), )) answer = input("请问是否继续排序?y/n") if answer == "y": continue else: break# 总人数def total(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() print('一共有',len(student_old),'名学生!') else: print("无人员资料") import msvcrt msvcrt.getch()# 展示def show(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() d = {} students = [] for item in student_old: d = dict(eval(item)) students.append(d) else: print("没有信息!") if len(students): format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' for dic in students: print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), )) else: print("无人员信息!") import msvcrt msvcrt.getch()if __name__ == '__main__': main()关于"如何用python实现简单的学生成绩管理系统"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"如何用python实现简单的学生成绩管理系统"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
学生
成绩
信息
输入
姓名
系统
管理系统
管理
排序
总成
总成绩
成功
知识
英语
查询
人数
内容
篇文章
菜单
个人
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会主任
互联网是不是新科技
互联网科技金融公司
互联网科技媒体
猫创互联网科技
互联网高科技企业
互联网 新科技
互联网科技公司名称
互联网金融监管科技
科技大学互联网专业好不好
青岛中康互联网医疗科技有限公司
互联网校园科技培训
未来五年的互联网科技
消费医药和互联网科技
特约风豹互联网科技为什么扣费
互联网金融科技元年
城市宝互联网科技有限公司
互联网科技年终奖
图游互联网科技
艺电能源互联网科技有限公司招聘
滨湖区互联网智能科技产品供应
世界互联网科技公司市值排名
深圳育鹏互联网科技有限公司招聘
亳州好赞互联网科技有限公司
中国互联网公司排名锤子科技
互联网科技年终奖
互联网安防科技感
数字科技和互联网金融哪个好
科技互联网专业务虚会材料
东风日产互联网科技公司叫什么