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 错误和异常小结
Oct 09 Python
使用python调用浏览器并打开一个网址的例子
Jun 05 Python
Python3实现连接SQLite数据库的方法
Aug 23 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
python如何让类支持比较运算
Mar 20 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
python清除字符串前后空格函数的方法
Oct 21 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
基于python cut和qcut的用法及区别详解
Nov 22 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 读取shell管道传输过来的内容
2010/03/01 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
JS实现手风琴特效
2020/11/08 Javascript
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
python文本数据相似度的度量
2018/03/12 Python
python之文件读取一行一行的方法
2018/07/12 Python
python组合无重复三位数的实例
2018/11/13 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python getpass模块用法及实例详解
2019/10/07 Python
Python 项目转化为so文件实例
2019/12/23 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
保送生自荐信范文
2013/10/06 职场文书
销售员岗位职责范本
2014/02/03 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
关于旅游的活动方案
2014/08/15 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
荒岛余生观后感
2015/06/09 职场文书
大学运动会加油稿
2015/07/22 职场文书
心理健康教育主题班会
2015/08/13 职场文书
员工试用期工作总结
2019/06/20 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android