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转码问题的解决方法
Oct 07 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
Nov 05 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
对pytorch网络层结构的数组化详解
Dec 08 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
Python排序函数的使用方法详解
Dec 11 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
php设计模式 Factory(工厂模式)
2011/06/26 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
js控制frameSet示例
2013/09/10 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
python实现html转ubb代码(html2ubb)
2014/07/03 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
TensorFlow变量管理详解
2018/03/10 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
教师个人的自我评价分享
2014/01/02 职场文书
主题酒店策划书
2014/01/28 职场文书
先进班集体申报材料
2014/12/26 职场文书
综合测评个人总结
2015/03/03 职场文书
罚款通知怎么写
2015/04/22 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
60句有关成长的名言
2019/09/04 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python