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使用win32com库播放mp3文件的方法
May 30 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
pymongo中聚合查询的使用方法
Mar 22 Python
利用python求积分的实例
Jul 03 Python
python time.sleep()是睡眠线程还是进程
Jul 09 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
python web框架中实现原生分页
Sep 08 Python
django从后台返回html代码的实例
Mar 11 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
Python如何将装饰器定义为类
Jul 30 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常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
python 构造三维全零数组的方法
2018/11/12 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python @classmethod 的使用场合详解
2019/08/23 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
How TDD works
2012/09/30 面试题
商学院大学生求职的自我评价
2014/03/12 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
js不常见操作运算符总结
2021/11/20 Javascript
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python