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

 更新时间:2022年05月04日 09:29:58   作者:迷途无归  
这篇文章主要为大家详细介绍了python学生信息管理系统的初级版本代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家分享了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()

程序效果如下:

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

相关文章

  • pandas中计算两列相乘实例

    pandas中计算两列相乘实例

    这篇文章主要介绍了pandas中计算两列相乘实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 如何利用python 读取配置文件

    如何利用python 读取配置文件

    这篇文章主要介绍了如何利用python 读取配置文件,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • 在Python中使用MongoEngine操作数据库教程实例

    在Python中使用MongoEngine操作数据库教程实例

    这篇文章主要介绍了在Python中使用MongoEngine操作数据库教程实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 使用Pytorch实现two-head(多输出)模型的操作

    使用Pytorch实现two-head(多输出)模型的操作

    这篇文章主要介绍了使用Pytorch实现two-head(多输出)模型的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Django ContentType组件详解

    Django ContentType组件详解

    这篇文章主要为大家介绍了Django ContentType组件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 如何基于Python爬虫爬取美团酒店信息

    如何基于Python爬虫爬取美团酒店信息

    这篇文章主要介绍了如何基于Python爬虫爬取美团酒店信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • PyQt5 matplotlib画图不刷新的解决方案

    PyQt5 matplotlib画图不刷新的解决方案

    这篇文章主要介绍了PyQt5 matplotlib画图不刷新的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python基于域相关实现图像增强的方法教程

    Python基于域相关实现图像增强的方法教程

    当在图像上训练深度神经网络模型时,通过对由数据增强生成的更多图像进行训练,可以使模型更好地泛化。本文将为大家介绍Python基于域相关的图像增强实现方法,需要的可以了解一下
    2022-01-01
  • Python列表解析操作实例总结

    Python列表解析操作实例总结

    这篇文章主要介绍了Python列表解析操作,结合实例形式总结分析了Python列表解析常见的列表推导式、循环语句、条件列表、嵌套列表等相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • AI生成图片Stable Diffusion环境搭建与运行方法

    AI生成图片Stable Diffusion环境搭建与运行方法

    Stable Diffusion是一种基于扩散过程的生成模型,由Ge et al.在2021年提出,该模型利用了随机变量的稳定分布,通过递归地应用扩散过程来生成高质量的图像,这篇文章主要介绍了AI图片生成Stable Diffusion环境搭建与运行,需要的朋友可以参考下
    2023-05-05

最新评论