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可变参数函数用法实例
Jul 07 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
Jun 02 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
Python加载带有注释的Json文件实例
May 23 Python
Flask框架Flask-Login用法分析
Jul 23 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
Pandas读取csv时如何设置列名
Jun 02 Python
Python类super()及私有属性原理解析
Jun 15 Python
python中Django文件上传方法详解
Aug 05 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
python爬虫常用的模块分析
2014/08/29 Python
Python中下划线的使用方法
2015/03/27 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
Django获取应用下的所有models的例子
2019/08/30 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
基于python3生成标签云代码解析
2020/02/18 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
生产主管岗位职责
2013/11/10 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
导游词之张家界
2019/10/31 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python