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中的异常处理学习笔记
Jan 28 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
使用python加密自己的密码
Aug 04 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
python 通过可变参数计算n个数的乘积方法
Jun 13 Python
如何在python中写hive脚本
Nov 08 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
解决echarts中饼图标签重叠的问题
May 16 Python
python如何进行矩阵运算
Jun 05 Python
基于python实现复制文件并重命名
Sep 16 Python
Anaconda使用IDLE的实现示例
Sep 23 Python
Python音乐爬虫完美绕过反爬
Aug 30 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 选项及相关信息函数库
2006/12/04 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
python实时监控cpu小工具
2018/06/21 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
python数据类型强制转换实例详解
2020/06/22 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
年度考核自我鉴定
2013/11/09 职场文书
酒店端午节促销方案
2014/02/18 职场文书
新店开张活动方案
2014/08/24 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
青岛导游词
2015/02/12 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
公司年夜饭通知
2015/04/25 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
vue判断按钮是否可以点击
2022/04/09 Vue.js