python学生管理系统的实现


Posted in Python onApril 05, 2020

本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下

```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编写脚本使IE实现代理上网的教程
Apr 23 Python
Python中的hypot()方法使用简介
May 18 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
Python内建模块struct实例详解
Feb 02 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
django 消息框架 message使用详解
Jul 22 Python
对Django中内置的User模型实例详解
Aug 16 Python
浅析Django中关于session的使用
Dec 30 Python
Python运行异常管理解决方案
Mar 09 Python
零基础小白多久能学会python
Jun 22 Python
Pycharm 解决自动格式化冲突的设置操作
Jan 15 Python
python利用while求100内的整数和方式
Nov 07 Python
python实现一个猜拳游戏
Apr 05 #Python
python实现对变位词的判断方法
Apr 05 #Python
python如何判断IP地址合法性
Apr 05 #Python
Python按照list dict key进行排序过程解析
Apr 04 #Python
Django高并发负载均衡实现原理详解
Apr 04 #Python
Django调用支付宝接口代码实例详解
Apr 04 #Python
基于python检查SSL证书到期情况代码实例
Apr 04 #Python
You might like
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python实现报表自动化详解
2017/11/16 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
如何定义TensorFlow输入节点
2020/01/23 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
彻底解决Python包下载慢问题
2020/11/15 Python
Otel.com:折扣酒店预订
2017/08/24 全球购物
《石榴》教学反思
2014/03/02 职场文书
廉洁自律承诺书
2014/03/27 职场文书
三人合伙协议书范本
2014/10/29 职场文书
三好学生事迹材料
2014/12/24 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
python 常用的异步框架汇总整理
2021/06/18 Python
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL