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 相关文章推荐
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
python仿evething的文件搜索器实例代码
May 13 Python
python实现一行输入多个值和一行输出多个值的例子
Jul 16 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
Python Process多进程实现过程
Oct 22 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
Python中常用的os操作汇总
Nov 05 Python
Python基础之pandas数据合并
Apr 27 Python
python爬虫请求库httpx和parsel解析库的使用测评
May 10 Python
Python开发五子棋小游戏
Apr 28 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
js的三种继承方式详解
2017/01/21 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
vue ssr+koa2构建服务端渲染的示例代码
2020/03/23 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
Python写的服务监控程序实例
2015/01/31 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
质检部岗位职责
2013/11/11 职场文书
德语专业求职信
2014/03/12 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
社区好人好事材料
2014/12/26 职场文书
工程项目合作意向书
2015/05/08 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书