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基础教程之缩进介绍
Aug 29 Python
使用Python中的cookielib模拟登录网站
Apr 09 Python
python开发之for循环操作实例详解
Nov 12 Python
Python使用defaultdict读取文件各列的方法
May 11 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
python suds访问webservice服务实现
Jun 26 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
php实现图片转换成ASCII码的方法
2015/04/03 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
电子商务应届生求职信
2013/11/16 职场文书
工艺工程师工作职责
2013/11/23 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
工作失职检讨书
2015/01/26 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server