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实现CET查分的方法
Mar 10 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
Python装饰器知识点补充
May 28 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
解决python文件双击运行秒退的问题
Jun 24 Python
Django用户认证系统 组与权限解析
Aug 02 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
Python基础之进程详解
May 21 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
JS实现放大镜效果
2020/09/21 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
判断网页编码的方法python版
2016/08/12 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
业务主管岗位职责
2013/11/20 职场文书
公益活动邀请函
2014/02/05 职场文书
面试自我评价范文
2014/09/17 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
驳回起诉裁定书
2015/05/19 职场文书
幸福来敲门观后感
2015/06/04 职场文书
2016幼儿园毕业感言
2015/12/08 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript