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实现class对象转换成json/字典的方法
Mar 11 Python
用Python写冒泡排序代码
Apr 12 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
Python工厂函数用法实例分析
May 14 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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数组应用之比较两个时间的相减排序
2008/08/18 PHP
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
php实现递归的三种基本方式
2020/07/04 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
JavaScript基本编码模式小结
2012/05/23 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
js实现进度条的方法
2015/02/13 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
Python格式化输出%s和%d
2018/05/07 Python
python中int与str互转方法
2018/07/02 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
幼儿园招生广告
2014/03/19 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
困难补助申请报告
2015/05/19 职场文书
小学音乐课教学反思
2016/02/18 职场文书