python学生管理系统学习笔记


Posted in Python onMarch 19, 2019

本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下

基于列表存储的学生管理系统,实现如下功能

==================
学生管理系统
1、添加学生信息
2、删除学生信息
3、查询学生信息
4、修改学生信息
5、显示所有学生信息
6、退出
==================

代码如下:

import re
student=[]
 
def appendStudentInfo():
 studentinfo={"Name":"","ID":"","语文":"","数学":"","英语":"","总分":""}
 studentinfo["Name"]=input("请输入学生姓名:")
 idflag=True
 while idflag:
  studentinfo["ID"] = input("请输入学生学号:")
  pattern=re.compile("^\d{3}$")
  if not re.match(pattern,studentinfo["ID"]) :
   print("输入错误,请重新输入")
   idflag = True
  if querystudent(studentinfo["ID"])==True:
   print("该学号已经存在请重新输入")
   idflag = True
  if querystudent(studentinfo["ID"])==False and re.match(pattern,studentinfo["ID"]):
   idflag = False
 
 studentinfo["语文"]=input("请输入语文成绩:")
 while not studentinfo["语文"].isdigit() or int(studentinfo["语文"])>100 or int(studentinfo["语文"])<0:
  studentinfo["语文"] = input("输入错误,请重新输入:")
 
 studentinfo["数学"]=input("请输入数学成绩:")
 while not studentinfo["数学"].isdigit() or int(studentinfo["数学"]) > 100 or int(studentinfo["数学"]) < 0:
  studentinfo["数学"] = input("输入错误,请重新输入:")
 
 studentinfo["英语"]=input("请输入英语成绩:")
 while not studentinfo["英语"].isdigit() or int(studentinfo["英语"]) > 100 or int(studentinfo["英语"]) < 0:
  studentinfo["英语"] = input("输入错误,请重新输入:")
 
 studentinfo["总分"]=int(studentinfo["语文"])+int(studentinfo["英语"])+int(studentinfo["数学"])
 student.append(studentinfo)
 
def delstudent():
 delstudentid = input("请输入要删除的学生学号:")
 flag =False
 for item in student:
  if item["ID"]==delstudentid:
   flag = True
   print("要删除学生的相关信息如下:")
   print(item)
   select=input("是否删除:是(Y)/否(N)")
   if select=="Y" or select=="y":
    student.remove(item)
    print("删除成功")
   elif select =="N" or select=="n":
    print("取消删除")
   else:
    print("输入错误")
 if flag ==False:
  print("未搜索到该学生")
 
def querystudent(querystudentid):
 flag=False
 for item in student:
  if item["ID"]==querystudentid:
   flag=True
 return flag
 
def modifystudentifo():
 delstudentid = input("请输入要修改的学生学号:")
 
 flag=False
 for item in student:
  if item["ID"]==delstudentid:
   print("查询内容如下:")
   print(item)
   flag=True
   while True:
    modifymenu = input("请输入修改选项:1、姓名,2、语文成绩,3、数学成绩,4、英语成绩,5、退出")
    while not modifymenu.isdigit():
     modifymenu = input("输入错误,请重新输入:")
    if int(modifymenu)==1:
     item["Name"] = input("请重新输入学生姓名:")
    elif int(modifymenu)==2:
     item["语文"] = input("请重新输入学生语文成绩:")
    elif int(modifymenu)==3:
     item["数学"] = input("请重新输入学生数学成绩:")
    elif int(modifymenu)==4:
     item["英语"] = input("请重新输入学生英语成绩:")
    elif int(modifymenu) == 5:
     break
    else:
     print("输入序号无效")
   item["总分"] = int(item["语文"]) + int(item["英语"]) + int(item["数学"])
   print("修改结果如下:")
   print(item)
 
 if flag ==False:
  print("未搜索到该学生")
 
def allinfo():
 for item in student:
  print(item)
 
def iteminfo(querystudentid):
 for item in student:
  if item["ID"]==querystudentid:
   print("查询内容如下:")
   print(item)
 
def studentMenu():
 print("="*30)
 print("学生管理系统")
 print("1、添加学生信息")
 print("2、删除学生信息")
 print("3、查询学生信息")
 print("4、修改学生信息")
 print("5、显示所有学生信息")
 print("6、退出")
 print("="*30)
 
 
if __name__ == '__main__':
 
 while True:
  studentMenu()
  menuindex = input("请输入选项序号:")
  while not menuindex.isdigit():
   menuindex = input("输入错误,请重新输入:")
  if int(menuindex) ==1:
   appendStudentInfo()
  elif int(menuindex) ==2:
   delstudent()
  elif int(menuindex) ==3:
   querystudentid = input("请输入要查询的学生学号:")
   if querystudent(querystudentid) == True:
    iteminfo(querystudentid)
   else:print("未搜索到该学生")
  elif int(menuindex) ==4:
   modifystudentifo()
  elif int(menuindex)== 5:
   allinfo()
  elif int(menuindex) == 6:
   break
  else:
   print("输入序号无效")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
Python远程桌面协议RDPY安装使用介绍
Apr 15 Python
详解Python的Django框架中的templates设置
May 11 Python
python3.5仿微软计算器程序
Mar 30 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
python rsa 加密解密
Mar 20 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
Python中optparser库用法实例详解
Jan 26 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
Python操作rabbitMQ的示例代码
Mar 19 #Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 #Python
浅谈python中get pass用法
Mar 19 #Python
使用matplotlib中scatter方法画散点图
Mar 19 #Python
详解django+django-celery+celery的整合实战
Mar 19 #Python
详解Python正则表达式re模块
Mar 19 #Python
python matplotlib画图库学习绘制常用的图
Mar 19 #Python
You might like
初品cakephp 入门基础
2012/02/16 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
JavaScript 对象模型 执行模型
2009/12/06 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python统计中文字符数量的两种方法
2019/01/31 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
财务会计专业推荐信
2013/11/30 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
《小小的船》教学反思
2016/02/18 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
php去除deprecated的实例方法
2021/11/17 PHP