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利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
Python常用算法学习基础教程
Apr 13 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
python 如何将office文件转换为PDF
Sep 22 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 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中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
Python 通过URL打开图片实例详解
2017/06/01 Python
Python反射用法实例简析
2017/12/22 Python
基于Python log 的正确打开方式
2018/04/28 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
django实现类似触发器的功能
2019/11/15 Python
python怎么调用自己的函数
2020/07/01 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
社团成立邀请函
2014/01/08 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
个人委托书范本
2014/04/02 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
2015学校年度工作总结
2015/05/11 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
小学生运动会广播
2015/08/19 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS