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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
Python序列化pickle模块使用详解
Mar 05 Python
django处理select下拉表单实例(从model到前端到post到form)
Mar 13 Python
Python任务调度模块APScheduler使用
Apr 15 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
python中的列表和元组区别分析
Dec 30 Python
利用python调用摄像头的实例分析
Jun 07 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
8个必备的PHP功能开发
2015/10/02 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
javascript中关于&& 和 || 表达式的小技巧分享
2015/04/10 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
Python守护进程(daemon)代码实例
2015/03/06 Python
10款最好的Web开发的 Python 框架
2015/03/18 Python
python实现字符串和日期相互转换的方法
2015/05/13 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
Python运行DLL文件的方法
2020/01/17 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
初三物理教学反思
2014/01/21 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
基层党员对照检查材料
2014/09/24 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
Echarts如何重新渲染实例详解
2022/05/30 Javascript