python初学者,用python实现基本的学生管理系统(python3)代码实例


Posted in Python onApril 10, 2019

这个是用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之不要红头文件(1)
Sep 28 Python
python中readline判断文件读取结束的方法
Nov 08 Python
Python简单实现控制电脑的方法
Jan 22 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
Python编程中flask的简介与简单使用
Dec 28 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
Python3获取cookie常用三种方案
Oct 05 Python
如何基于Python按行合并两个txt
Nov 03 Python
Python将json文件写入ES数据库的方法
Apr 10 #Python
pycharm创建一个python包方法图解
Apr 10 #Python
Python socket模块实现的udp通信功能示例
Apr 10 #Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 #Python
一个可以套路别人的python小程序实例代码
Apr 09 #Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 #Python
详解Python 解压缩文件
Apr 09 #Python
You might like
js下函数般调用正则的方法附代码
2008/06/22 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python通过future处理并发问题
2017/10/17 Python
Python文件的读写和异常代码示例
2017/10/31 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
百联网上商城:i百联
2017/01/28 全球购物
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
外语专业毕业生个人的自荐信
2013/11/19 职场文书
物理教育专业求职信
2014/06/25 职场文书
质量主管工作职责
2014/09/26 职场文书
工程部部长岗位职责
2015/02/12 职场文书
工作时间证明
2015/06/15 职场文书