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 BeautifulSoup库抓取58手机维修信息
Nov 21 Python
python类继承与子类实例初始化用法分析
Apr 17 Python
Python中字典的基本知识初步介绍
May 21 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Python之Web框架Django项目搭建全过程
May 02 Python
python并发2之使用asyncio处理并发
Dec 21 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
利用Python校准本地时间的方法教程
Oct 31 Python
python生成特定分布数的实例
Dec 05 Python
python实现与redis交互操作详解
Apr 21 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 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
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
认识延迟时间为0的setTimeout
2008/05/16 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
Python+微信接口实现运维报警
2016/08/27 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
Linux下python3.7.0安装教程
2018/07/30 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
蔬菜基地的创业计划书
2014/01/06 职场文书
团日活动策划书
2014/02/01 职场文书
党员活动总结
2015/02/04 职场文书
法律意见书范文
2015/06/04 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android