python 实现学生信息管理系统的示例


Posted in Python onNovember 28, 2020

这个是用python实现的基本的增删改查的学生管理系统,其中主要是对输入的数据进行合法性检测的问题,这次又对函数进行了练习!掌握函数更加熟练了!二话不说先贴代码,一切问题请看注释,都很详细,非常适合python3初学者!

以下是操作流程和实现代码:

"""
学生管理系统
主要特点:1.可以检测学号是否重复/有误(不为纯数字)
  2.可以检测手机号是否合法(是否为纯数字)
  3.可以检测性别是否为男或者女
  4.能选择性修个学生的某个属性信息,比如只修改某个学生的手机号码
  5.能够实现基本的增删改查
  6.优化了代码
"""
 
 
name_list = [] # 存储学生信息字典,学生信息用字典存,再用列表存储字典
 
 
# 菜单
def display_menu():
 print("-"*30)
 print(" 学生管理系统 v8.8 ")
 print("1.添加学生信息")
 print("2.删除学生信息")
 print("3.修改学生信息")
 print("4.查询单个学生信息")
 print("5.查询所有学生信息")
 print("6.退出系统")
 print("-"*30)
 
 
# 选择序号的获得
def get_choice():
 selected_key = input("请输入选择的序号:")
 return selected_key
 
 
# 检查性别是否合法
def check_sex(new_sex):
 flag = True
 while flag:
  if new_sex == '男' or new_sex == '女':
   flag = False
  else:
   new_sex = input("输入性别有误,请重新输入(男/女):")
 return new_sex
 
 
# 检查电话号码是否合法
def check_phone(new_phone):
 flag = True
 while flag:
  if new_phone.isdigit():
   flag = False
  else:
   new_phone = input("您输入的电话号码有误,请重新输入:")
 return new_phone
 
 
# 检查学号是否重复或者有误
def check_id(new_id):
 flag = True
 while flag:
  # 先检查是不是纯数字再去考虑是否重复的事情,如果不是纯数字直接pass
  if new_id.isdigit():
   for i in range(len(name_list)):
    if name_list[i]['id'] == new_id:
     new_id = check_id(input("您输入的学号重复,请重新输入:"))
   flag = False
  else:
   new_id = input("您输入的学号有误,请重新输入:")
 return new_id
 
 
# 添加学生信息
def add_name():
 new_info = {}
 new_id = check_id(input("请输入学号:"))
 new_info['id'] = new_id
 new_name = input("请输入姓名:")
 new_info['name'] = new_name
 new_sex = check_sex(input("请输入性别(男/女):"))
 new_info['sex'] = new_sex
 new_phone = check_phone(input("请输入电话号码:"))
 new_info['phone'] = new_phone
 name_list.append(new_info)
 print("添加成功!")
 
 
# 查询所有学生信息
def find_all():
 print("="*30)
 for name in name_list:
  print(name['id'], name['name'], name['sex'], name['phone'])
 print("=" * 30)
 
 
# 删除学生信息
def del_name():
 del_id_is = input("请输入要删除的学生学号:")
 flag = False
 index = 0
 for i in range(len(name_list)):
  if name_list[i]['id'] == del_id_is:
   flag = True
   index = i
   break
 if flag:
  name_list.pop(index)
  print("删除成功!")
 else:
  print("学生未找到!请检查学号输入是否有误!")
 
 
# 名字修改细节函数
def choice_of_name(index):
 while True:
  choice = input("请输入要修改学生的(1.id 2.姓名 3.性别 4.电话号码,5.全部修改):")
  if choice == '5':
   new_id = input("请输入新的学号:")
   name_list[index]['id'] = new_id
   new_name = input("请输入新的姓名:")
   name_list[index]['name'] = new_name
   new_sex = check_sex(input("请输入性别(男/女):"))
   name_list[index]['sex'] = new_sex
   new_phone = check_phone(input("请输入电话号码:"))
   name_list[index]['phone'] = new_phone
   break
  elif choice == '1':
   new_id = input("请输入新的学号:")
   name_list[index]['id'] = new_id
   break
  elif choice == '2':
   new_name = input("请输入新的姓名:")
   name_list[index]['name'] = new_name
   break
  elif choice == '3':
   new_sex = check_sex(input("请输入性别(男/女):"))
   name_list[index]['sex'] = new_sex
   break
  elif choice == '4':
   new_phone = check_phone(input("请输入电话号码:"))
   name_list[index]['phone'] = new_phone
   break
  else:
   print("输入有误,请重新输入!")
 
 
# 修改学生信息
def re_name():
 id_is = input("请输入要修改的学生学号:")
 flag = False
 index = 0
 # 先找到要修改的学生的下标
 for i in range(len(name_list)):
  if name_list[i]['id'] == id_is:
   flag = True
   index = i
   break
 if flag:
  choice_of_name(index)
  print("修改成功!")
 else:
  print("修改失败,学生信息未找到!")
 
 
# 查询单个学生信息
def find_name():
 find_id_is = input("请输入要查询的学生学号:")
 flag = False
 index = 0
 for i in range(len(name_list)):
  if name_list[i]['id'] == find_id_is:
   flag = True
   index = i
   break
 if flag:
  print("学生查询到,学生信息为:")
  print(name_list[index]['id'], name_list[index]['name'], name_list[index]['sex'], name_list[index]['phone'])
 else:
  print("学生未找到!")
 
 
def main():
 exit_name = True
 while exit_name:
  display_menu()
  key = get_choice()
  if key == '1':
   add_name()
  elif key == '2':
   del_name()
  elif key == '3':
   re_name()
  elif key == '4':
   find_name()
  elif key == '5':
   find_all()
  elif key == '6':
   exit_name = False
  else:
   print("请输入正确的数值!")
 
 
main()

以上就是python 实现学生信息管理系统的详细内容,更多关于python 信息管理系统的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python 返回汉字的汉语拼音
Feb 27 Python
用Python创建声明性迷你语言的教程
Apr 13 Python
python执行子进程实现进程间通信的方法
Jun 02 Python
python append、extend与insert的区别
Oct 13 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
Python中关键字global和nonlocal的区别详解
Sep 03 Python
Python中fnmatch模块的使用详情
Nov 30 Python
python实现三次样条插值
Dec 17 Python
详解python中的index函数用法
Aug 06 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
python自动化工具之pywinauto实例详解
Aug 26 Python
Python基础类继承重写实现原理解析
Apr 03 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 #Python
Python3 用什么IDE开发工具比较好
Nov 28 #Python
Pycharm配置autopep8实现流程解析
Nov 28 #Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 #Python
Python安装Bs4的多种方法
Nov 28 #Python
Pycharm Plugins加载失败问题解决方案
Nov 28 #Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
Nov 28 #Python
You might like
提高php运行速度的一些小技巧分享
2012/07/03 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python 生成图形验证码的方法示例
2018/11/11 Python
如何基于Python创建目录文件夹
2019/12/31 Python
如何理解Python中的变量
2020/06/01 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
外贸采购员求职的自我评价
2013/11/26 职场文书
关于旷工的检讨书
2014/02/02 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
模范教师材料大全
2014/12/16 职场文书
就业意向协议书
2015/01/29 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏