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使用代理抓取网站图片(多线程)
Mar 14 Python
Python pandas常用函数详解
Feb 07 Python
Python中max函数用于二维列表的实例
Apr 03 Python
Django Rest framework之认证的实现代码
Dec 17 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
Python字符串中删除特定字符的方法
Jan 15 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 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数组总结篇(一)
2008/09/30 PHP
PHP队列用法实例
2014/11/05 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
django admin 添加自定义链接方式
2020/03/11 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
python基于opencv 实现图像时钟
2021/01/04 Python
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
法学专业毕业生自荐信范文
2013/12/18 职场文书
职业生涯规划书基本格式
2014/01/06 职场文书
气象学专业个人求职信
2014/03/15 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers