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格式化css文件的方法
Mar 10 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
由面试题加深对Django的认识理解
Jul 19 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
Python 中判断列表是否为空的方法
Nov 24 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
python tqdm库的使用
Nov 30 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 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开发环境配置记录
2011/01/14 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
ext 代码生成器
2009/08/07 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
js倒计时抢购实例
2015/12/20 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python xpath获取页面注释的方法
2019/01/14 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
汽车机修工岗位职责
2014/03/06 职场文书
住宅质量保证书
2014/04/29 职场文书
质量保证书
2015/01/17 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
论语读书笔记
2015/06/26 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
一文带你探究MySQL中的NULL
2021/11/11 MySQL