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入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
Python中用于计算对数的log()方法
May 15 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
Apr 23 Python
Python 通配符删除文件的实例
Apr 24 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
对python中类的继承与方法重写介绍
Jan 20 Python
Python操作配置文件ini的三种方法讲解
Feb 22 Python
python机器人运动范围问题的解答
Apr 29 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
python 实现的IP 存活扫描脚本
Dec 10 Python
Python实现Matplotlib,Seaborn动态数据图
May 06 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP 防注入函数(格式化数据)
2011/08/08 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python实现telnet服务器的方法
2015/07/10 Python
python实现八大排序算法(1)
2017/09/14 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python动态进度条的实现代码
2019/07/03 Python
Python中if有多个条件处理方法
2020/02/26 Python
趣味运动会活动方案
2014/02/12 职场文书
团结演讲稿范文
2014/05/23 职场文书
2014年老干部工作总结
2014/11/21 职场文书
蓬莱阁导游词
2015/02/04 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
以下牛机,你有几个
2022/04/05 无线电
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android