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 相关文章推荐
详解Python2.x中对Unicode编码的使用
Apr 03 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Python 分享10个PyCharm技巧
Jul 13 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
用Python提取PDF表格的方法
Apr 11 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
php 求质素(素数) 的实现代码
2011/04/12 PHP
php在线代理转向代码
2012/05/05 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
jquery 问答知识整理
2010/02/11 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
Python查看多台服务器进程的脚本分享
2014/06/11 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
python获取文件扩展名的方法
2015/07/06 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
python求最大值最小值方法总结
2019/06/25 Python
django2笔记之路由path语法的实现
2019/07/17 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
初级Java程序员面试题
2016/03/03 面试题
如何写你的创业计划书
2014/01/07 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
小学一年级评语大全
2014/04/22 职场文书
社会工作专业求职信
2014/07/15 职场文书