
Python实现超简易的学生信息管理系统
发布日期:2021-05-08 02:11:28
浏览次数:24
分类:精选文章
本文共 6593 字,大约阅读时间需要 21 分钟。
Python实现超简易的学生信息管理系统
import pandas as pddata = [ {"ID":1001,"Name":"Mary","English_score":100,"Python_score":99,"C_score":96}, {"ID":1002,"Name":"Jack","English_score":98,"Python_score":92,"C_score":98}, {"ID":1003,"Name":"Lily","English_score":93,"Python_score":96,"C_score":94}, {"ID":1004,"Name":"Mike","English_score":95,"Python_score":96,"C_score":90}, {"ID":1005,"Name":"Rose","English_score":97,"Python_score":94,"C_score":92}]subject_dic = { '1':'English_score','2':'Python_score','3':'C_score','4':'Total_score'}def insert(): while True: ID = int(input('请输入要添加的学生ID:')) if ID in [data[i]['ID'] for i in range(len(data))]: print('ID:{}已经存在,请重新输入!'.format(ID)) res = input("是否继续添加学生信息?(Y/N):").title() if res == 'Y': continue elif res == 'N': break else: print('请输入正确的格式!') continue try: Name = input('请输入要添加的学生姓名:').title() English_score = int(input('请输入要添加的学生英语成绩:')) Python_score = int(input('请输入要添加的学生Python成绩:')) C_score = int(input('请输入要添加的学生C语言成绩:')) except: print('请输入正确的格式!') continue Total_score = English_score + Python_score + C_score data.append({ "ID":ID, "Name":Name, "English_score":English_score, "Python_score":Python_score, "C_score":C_score, "Total_score":Total_score }) print('{}号学生信息添加成功!'.format(ID)) while True: res = input("是否继续添加学生信息?(Y/N):").title() if res == 'Y': break elif res == 'N': break else: print('请输入正确的格式!') continuedef search(): while True: search_method = input('请输入查询方式:1-ID,2-姓名:') if search_method == '1': ID = input('请输入学生ID:') if ID not in [str(data[i]['ID']) for i in range(len(data))]: print('您查找的ID不存在!') else: search_lst = [item for item in data if str(item["ID"]) == ID] search_lst[0]['Total_score'] = search_lst[0]['English_score'] + search_lst[0]['Python_score'] + search_lst[0]['C_score'] print("您要查询的学生信息为:\n{}".format(search_lst[0])) search_lst.clear() elif search_method == '2': Name = input('请输入学生姓名:').title() if Name not in [data[i]['Name'] for i in range(len(data))]: print('您查找的姓名不存在!') else: search_lst = [item for item in data if item["Name"] == Name] for item in search_lst: item['Total_score'] = item['English_score'] + item['Python_score'] + item['C_score'] print("您要查询的学生信息为:\n{}".format(item)) search_lst.clear() else: print("您输入的方式有误,请重新查询!") while True: res = input("是否继续查询学生信息?(Y/N):").title() if res == 'Y': break elif res == 'N': break else: print('请输入正确的格式!') continuedef delete(): while True: ID = input('请输入要删除信息对应的学生ID:') if ID not in [str(data[i]['ID']) for i in range(len(data))]: print('您要删除的ID不存在!') else: delete_lst = [item for item in data if str(item["ID"]) == ID] data.remove(delete_lst[0]) print('{}号学生的信息删除成功!'.format(ID)) while True: res = input("是否继续删除学生信息?(Y/N):").title() if res == 'Y': break elif res == 'N': break else: print('请输入正确的格式!') continuedef modify(): while True: ID = input('请输入要修改信息对应的学生ID:') if ID not in [str(data[i]['ID']) for i in range(len(data))]: print('您要修改的ID不存在!') else: subject = input('请输入要修改的科目(1-English_score,2-Python_score,3-C_score):') modified_score = input('请输入修改后的分数:') if subject in ['1','2','3'] and modified_score.isdigit(): modify_lst = [index for index,item in enumerate(data) if item['ID'] == int(ID)] data[modify_lst[0]][subject_dic[subject]] = int(modified_score) print('{}号学生的{}成绩修改成功!'.format(ID,subject_dic[subject])) else: print('请输入正确的科目代码或分数!') while True: res = input("是否继续修改学生信息?(Y/N):").title() if res == 'Y': break elif res == 'N': break else: print('请输入正确的格式!') continuedef sort(): while True: subject = input('请输入按哪一个科目排序(1-English_score,2-Python_score,3-C_score,4-Total_score):') data_ = pd.DataFrame(data) data_['Total_score'] = data_['English_score'] + data_['Python_score'] + data_['C_score'] print(data_.sort_values(by = subject_dic[subject],ascending = False)) while True: res = input("是否继续排序学生信息?(Y/N):").title() if res == 'Y': break elif res == 'N': break else: print('请输入正确的格式!') continuedef show(): data_ = pd.DataFrame(data) data_['Total_score'] = data_['English_score'] + data_['Python_score'] + data_['C_score'] print(data_.to_dict('records'))def update(): data_ = pd.DataFrame(data) data_['Total_score'] = data_['English_score'] + data_['Python_score'] + data_['C_score'] return datamark = Truewhile mark: print(''' ''') print('='*10,'功能菜单','='*10) print(''' 1、录入学生信息 2、查找学生信息 3、删除学生信息 4、修改学生信息 5、排序 6、显示所有学生信息 0、退出 ''') print('='*30) res = int(input('请输入您想要执行的功能:')) if res == 0: mark = False elif res == 1: insert() elif res == 2: search() elif res == 3: delete() elif res == 4: modify() elif res == 5: sort() elif res == 6: show() else: print('请输入正确的功能!')运行结果如下:
========== 功能菜单 ==========1、录入学生信息2、查找学生信息3、删除学生信息4、修改学生信息5、排序6、显示所有学生信息0、退出==============================请输入您想要执行的功能:6ID Name English_score Python_score C_score Total_score1001 Mary 100 99 96 2951002 Jack 98 92 98 2881003 Lily 93 96 94 2831004 Mike 95 96 90 2811005 Rose 97 94 92 283还有几个小练习,后面继续码出来!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月26日 23时05分36秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
玩玩小爬虫——试搭小架构
2021-05-09
Javascript之旅——第九站:吐槽function
2021-05-09
Sql Server之旅——第十站 看看DML操作对索引的影响
2021-05-09
双十一来了,别让你的mongodb宕机了
2021-05-09
深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍
2021-05-09
Python大神编程常用4大工具,你用过几个?
2021-05-09
一文带你了解图神经网络
2021-05-09
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
2021-05-09
【Flink】Flink 底层RPC框架分析
2021-05-09
MySQL错误日志(Error Log)
2021-05-09
oracle使用DBMS_RANDOM包生成随机数据
2021-05-09
C++高精度模板
2021-05-09
联赛模拟测试23 D. 真相 思维题
2021-05-09
SSISDB2:SSIS工程的操作实例
2021-05-09
业务工作流平台设计(八)
2021-05-09
解决:angularjs radio默认选中失效问题
2021-05-09
windows环境下安装zookeeper(仅本地使用)
2019-03-06
缓冲区溢出实例(一)--Windows
2019-03-06