python学生信息管理系统(初级版)


Posted in Python onOctober 17, 2018

本文为大家分享了python学生信息管理系统的初级实现代码,供大家参考,具体内容如下

学生信息管理项目,要求带操作界面,并完成每项操作:

+----------------------+
| 1)添加学生信息

 |
| 2)显示所有学生的信息

   

 |
| 3)删除学生信息

      |
| 4)修改学生信息

          


| 5)按学生成绩高-低显示学生信息

         |
| 6)按学生成绩低-高显示学生信息

       |
| 7)按学生年龄高-低显示学生信息

  


| 8)按学生年龄低-高显示学生信息

   |
| 9)退出                   

           |

学生信息包括有:名字,年龄,成绩

注:按照正常的输入流程没有问题,还有待完善(完整版参见下一篇:Python项目:学生信息管理系统(完整版) )

详细代码如下:

# student_info.py
# 学生信息管理项目,要求带操作界面:
# +----------------------+
# | 1)添加学生信息









|
# | 2)显示所有学生的信息







 |
# | 3)删除学生信息










|
# | 4)修改学生信息










|
# | 5)按学生成绩高-低显示学生信息



 |
# | 6)按学生成绩低-高显示学生信息



 |
# | 7)按学生年龄高-低显示学生信息



 |
# | 8)按学生年龄低-高显示学生信息



 |
# | 9)退出  



 |
 
 
def meun():
 menu_info = '''+----------------------+
| 1)添加学生信息  |
| 2)显示所有学生的信息  |
| 3)删除学生信息  |
| 4)修改学生信息  |
| 5)按学生成绩高-低显示学生信息 |
| 6)按学生成绩低-高显示学生信息 |
| 7)按学生年龄高-低显示学生信息 |
| 8)按学生年龄低-高显示学生信息 |
| 9)退出   |
'''
 print(menu_info)
 
 
# 以下二个函数用于sorted排序, key的表达式函数
def get_age(*l):
 for x in l:
 return x.get("age")
def get_score(*l):
 for x in l:
 return x.get("score")
 
# 1)添加学生信息
def add_student_info():
 L = []
 while True:
 n = input("请输入名字:")
 if not n: # 名字为空 跳出循环
 break
 a = int(input("请输入年龄:"))
 s = int(input("请输入成绩:"))
 info = {"name":n,"age":a,"score":s}
 L.append(info)
 return L
 
# 2)显示所有学生的信息
def show_student_info(student_info):
 print("名字".center(8),"年龄".center(4),"成绩".center(4))
 for info in student_info:
 print(info.get("name").center(10),str(info.get("age")).center(4),str(info.get("score")).center(4))
 
# 3)删除学生信息
def del_student_info(student_info,del_name = ''):
 if not del_name:
 del_name = input("请输入删除的学生姓名:")
 for info in student_info:
 if del_name == info.get("name"):
 return info
 
# 4)修改学生信息
def mod_student_info(student_info):
 mod_name = input("请输入修改的学生姓名:")
 for info in student_info:
 if mod_name == info.get("name"):
 a = int(input("请输入年龄:"))
 s = int(input("请输入成绩:"))
 info = {"name":mod_name,"age":a,"score":s}
 return info
 raise IndexError("学生信息不匹配,没有找到%s" %mod_name)
 
# 5)按学生成绩高-低显示学生信息
def score_reduce(student_info):
 print("按学生成绩高-低显示")
 mit = sorted(student_info ,key = get_score,reverse = True)
 show_student_info(mit)
 
# 6)按学生成绩低-高显示学生信息
def score_rise(student_info):
 print("按学生成绩低-高显示")
 mit = sorted(student_info ,key = get_score)
 show_student_info(mit)
 
# 7)按学生年龄高-低显示学生信息
def age_reduce(student_info): 
 print("按学生年龄高-低显示:")
 mit = sorted(student_info ,key = get_age,reverse = True)
 show_student_info(mit)
 
# 8)按学生年龄低-高显示学生信息
def age_rise(student_info): 
 print("按学生年龄低-高显示:")
 mit = sorted(student_info ,key = get_age)
 show_student_info(mit)
 
def main():
 student_info = []
 while True:
 meun()
 number = input("请输入选项:")
 if number == '1':
 student_info = add_student_info()
 elif number == '2':
 show_student_info(student_info)
 elif number == '3':
 student_info.remove(del_student_info(student_info))
 elif number == '4':
 try: 
 student = mod_student_info(student_info)
 except Exception as e:
 # 学生姓名不匹配
 print(e)
 else:
 # 首先按照根据输入信息的名字,从列表中删除该生信息,然后重新添加该学生最新信息
 student_info.remove(del_student_info(student_info,del_name = student.get("name"))) 
 student_info.append(student)
 elif number == '5':
 score_reduce(student_info)
 elif number == '6':
 score_rise(student_info)
 elif number == '7':
 age_reduce(student_info)
 elif number == '8':
 age_rise(student_info)
 elif number == '9':
 break
 else:
 break
 
main()

程序效果如下:

python学生信息管理系统(初级版)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python MySQLdb Linux下安装笔记
May 09 Python
浅谈Python的文件类型
May 30 Python
python+matplotlib演示电偶极子实例代码
Jan 12 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
使用Django连接Mysql数据库步骤
Jan 15 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
Python实现直播推流效果
Nov 26 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
Python的in,is和id函数代码实例
Apr 18 Python
详解Python 中的容器 collections
Aug 17 Python
学生信息管理系统python版
Oct 17 #Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 #Python
Python实现Dijkstra算法
Oct 17 #Python
使用Python抓取豆瓣影评数据的方法
Oct 17 #Python
python 对key为时间的dict排序方法
Oct 17 #Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
Oct 17 #Python
通过python将大量文件按修改时间分类的方法
Oct 17 #Python
You might like
简单的php新闻发布系统教程
2014/05/09 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
php5与php7的区别点总结
2019/10/11 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
python实现简单socket通信的方法
2016/04/19 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
小学语文国培感言
2014/03/04 职场文书
低碳环保口号
2014/06/12 职场文书
团队会宣传标语
2014/10/09 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书