资讯专栏INFORMATION COLUMN

Python运用词典和目录完成学生们信息系统

89542767 / 265人阅读

  本文大多为大伙儿阐述了Python如何运用词典和目录完成1个简单的学生们信息系统,原文中详尽注解,便捷了解,所需要的可以了解一下


  本文运用Python里的词典和目录完成学生们信息系统


  文件信息储放文件格式所采用的是python内置的pickle控制模块,必须新创建course.txt和student.txt供程序流程读写能力。


  以下是实例编码


  import pickle
  #从文件中读取学生信息并返回
  def readStudent():
  with open("student.txt",'rb')as f:
  try:
  return pickle.load(f)
  #读取失败,说明读取的文件为空,返回空列表即可
  except EOFError:
  return[]
  #保存学生信息student_list到文件student.txt中
  def saveStudent(student_list):
  with open("student.txt",'wb')as f:
  pickle.dump(student_list,f)
  #增加学生信息
  def addStudent(student_list):
  id=input("请输入要增加的学生学号:")
  name=input("请输入要增加的学生姓名:")
  sex=input("请输入要增加的学生性别:")
  specialty=input("请输入要增加的学生专业班级:")
  #把这4个数据装入字典student中
  student={"学号":id,"姓名":name,"性别":sex,"专业班级":specialty}
  #把字典student添加到列表student_list中
  student_list.append(student)
  #删除学生信息
  def deleteStudent(student_list):
  id=input("请输入要删除的学生学号:")
  for i in range(0,len(student_list)):
  #student_list<i>是一个字典
  if student_list<i>["学号"]==id:
  #删除student_list中的第i个字典
  student_list.pop(i)
  print("删除成功!")
  return#结束函数
  print("删除失败,未查询到该学生。")
  #修改学生信息
  def modifyStudent(student_list):
  id=input("请输入要修改的学生学号:")
  for i in range(0,len(student_list)):
  if student_list<i>["学号"]==id:
  id=input("请输入修改后的学生学号:")
  name=input("请输入修改后的姓名:")
  sex=input("请输入修改后的性别:")
  specialty=input("请输入修改后的专业班级:")
  #把这4个数据装入字典student中
  student={"学号":id,"姓名":name,"性别":sex,"专业班级":specialty}
  #用student替换student_list中的第i个字典
  student_list<i>=student
  print("修改成功!")
  return#结束函数
  print("修改失败,未查询到该学生。")
  #显示所有学生信息
  def showStudent(student_list):
  print("学号tt姓名tt性别tt专业班级")
  for student in student_list:
  print("%stt%stt%stt%s"%(student["学号"],student["姓名"],student["性别"],student["专业班级"]))
  #从文件中读取学生成绩信息
  def readCourse():
  with open("course.txt",'rb')as f:
  try:
  return pickle.load(f)
  #读取失败,说明读取的文件为空,返回空列表即可
  except EOFError:
  return[]
  #保存学生成绩信息course_list到文件course.txt中
  def saveCourse(course_list):
  with open("course.txt",'wb')as f:
  pickle.dump(course_list,f)
  #增加学生成绩信息
  def addCourse(course_list):
  id=input("请输入要增加的学生学号:")
  english=int(input("请输入该学生的英语成绩:"))
  math=int(input("请输入该学生的数学成绩:"))
  computer=int(input("请输入该学生的计算机成绩:"))
  chemistry=int(input("请输入该学生的化学成绩:"))
  PE=int(input("请输入该学生的体育成绩:"))
  #把这6个数据装入字典course中
  course={"学号":id,"英语":english,"数学":math,"计算机":computer,"化学":chemistry,"体育":PE}
  #把字典course添加到列表course_list中
  course_list.append(course)
  #删除学生成绩信息
  def deleteCourse(course_list):
  id=input("请输入要删除的学生学号:")
  for i in range(0,len(course_list)):
  #course_list<i>是一个字典
  if course_list<i>["学号"]==id:
  #删除列表中的第i个字典
  course_list.pop(i)
  print("删除成功!")
  return#结束函数
  print("删除失败,未查询到该学生成绩。")
  #修改学生成绩信息
  def modifyCourse(course_list):
  id=input("请输入要修改的学生学号:")
  for i in range(0,len(course_list)):
  if course_list<i>["学号"]==id:
  id=input("请输入修改后的学生学号:")
  english=int(input("请输入修改后的英语成绩:"))
  math=int(input("请输入修改后的数学成绩:"))
  computer=int(input("请输入修改后的计算机成绩:"))
  chemistry=int(input("请输入修改后的化学成绩:"))
  PE=int(input("请输入修改后的体育成绩:"))
  #把这6个数据装入字典course中
  course={"学号":id,"英语":english,"数学":math,"计算机":computer,"化学":chemistry,"体育":PE}
  #用dict替换旧的数据
  course_list<i>=course
  print("修改成功!")
  return#结束函数
  print("修改失败,未查询到该学生成绩。")
  #显示学生成绩信息
  def showCourse(course_list):
  print("学号tt英语tt数学tt计算机tt化学tt体育")
  for course in course_list:
  print("%stt%dtt%dtt%dtt%dtt%d"%(course["学号"],course["英语"],course["数学"],
  course["计算机"],course["化学"],course["体育"]))
  #通过姓名查询该生的成绩信息
  def searchScoreByName(student_list,course_list):
  name=input("请输入学生姓名:")
  id="未查询到"
  for stu in student_list:
  if stu["姓名"]==name:
  id=stu["学号"]
  break
  if id=="未查询到":
  print("未查询到该学生信息。")
  return#结束函数
  for course in course_list:
  if course["学号"]==id:
  print("查询成功!该学生信息如下:")
  print("学号tt英语tt数学tt计算机tt化学tt体育")
  print("%stt%dtt%dtt%dtt%dtt%d"%(course["学号"],course["英语"],course["数学"],
  course["计算机"],course["化学"],course["体育"]))
  return#结束程序
  print("未查询到该学生成绩信息。")
  #查询某门课程得分最高的学生信息
  def searchStudentByHighScore(student_list,course_list):
  courseName=input("请输入课程名称:")
  #按这门课程冒泡排序
  for i in range(0,len(course_list)-1):
  for j in range(0,len(course_list)-1-i):
  if course_list[j][courseName]<course_list[j+1][courseName]:
  course_list[j],course_list[j+1]=course_list[j+1],course_list[j]
  id=course_list[0]["学号"]
  for student in student_list:
  if student["学号"]==id:
  print("查找成功!")
  print("学号tt姓名tt性别tt专业班级")
  print("%stt%stt%stt%s"%(student["学号"],student["姓名"],student["性别"],student["专业班级"]))
  return
  print("未查找到该学生信息。")
  #输出某门课的平均成绩
  def outputAverageScore(course_list):
  courseName=input("请输入课程名称:")
  sum=0
  for course in course_list:
  sum+=course[courseName]
  print("%s平均成绩为%.2f"%(courseName,sum/len(course_list)))
  #主菜单
  def menu():
  print("1.增加学生信息2.增加成绩信息")
  print("3.修改学生信息4.修改成绩信息")
  print("5.删除学生信息6.删除成绩信息")
  print("7.显示学生信息8.显示成绩信息")
  print("9.通过姓名查询该生的成绩信息")
  print("10.查询某门课程得分最高的学生信息")
  print("11.输出某门课的平均成绩")
  print("0.保存并退出")
  #主函数
  def main():
  student_list=readStudent()
  course_list=readCourse()
  flag=True
  while flag:
  menu()
  choose=input("请输入选项:")
  while True:
  #增加学生信息
  if choose=='1':
  addStudent(student_list)
  break
  #增加成绩信息
  elif choose=='2':
  addCourse(course_list)
  break
  #修改学生信息
  elif choose=='3':
  modifyStudent(student_list)
  break
  #修改成绩信息
  elif choose=='4':
  modifyCourse(course_list)
  break
  #删除学生信息
  elif choose=='5':
  deleteStudent(student_list)
  break
  #删除成绩信息
  elif choose=='6':
  deleteCourse(course_list)
  break
  #显示学生信息
  elif choose=='7':
  showStudent(student_list)
  break
  #显示成绩信息
  elif choose=='8':
  showCourse(course_list)
  break
  #通过姓名查询该生的成绩信息
  elif choose=='9':
  searchScoreByName(student_list,course_list)
  break
  #查询某门课程得分最高的学生信息
  elif choose=='10':
  searchStudentByHighScore(student_list,course_list)
  break
  #输出某门课的平均成绩
  elif choose=='11':
  outputAverageScore(course_list)
  break
  #保存数据并退出
  elif choose=='0':
  saveStudent(student_list)
  saveCourse(course_list)
  flag=False
  break
  else:
  choose=input("输入错误,请重新输入:")
  if __name__=='__main__':
  main()


  到这里这篇文章有关Python运用词典和目录完成学生们信息系统的帖子就分享到这了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128733.html

相关文章

  • 数据分析遇到PDF文本,怎么用Python批量提取内容

    摘要:复杂系统仿真的微博客虚假信息扩散模型研究面向影子分析的社交媒体竞争情报搜集面向人机协同的移动互联网政务门户探析经验证。微博客的企业竞争情报搜集移动社交媒体用户隐私保护对策研究注意这里的提示,原先的个文件没有被再次抽取,只有个新文件被抽取。 showImg(https://segmentfault.com/img/bVbiU7y?w=1000&h=508); 本文为你展示,如何用Pyth...

    cloud 评论0 收藏0
  • LSTM分类相关

    摘要:而检验模型用到的原材料,包括薛云老师提供的蒙牛牛奶的评论,以及从网络购买的某款手机的评论数据见附件。不同行业某些词语的词频会有比较大的差别,而这些词有可能是情感分类的关键词之一。这是由于文本情感分类的本质复杂性所致的。 文本情感分类--传统模型(转) showImg(https://segmentfault.com/img/bVKjWF?w=2192&h=534); 传统的基于情感词典...

    MartinHan 评论0 收藏0
  • python目录制作器普遍迭代器实例详细说明

      目录生成式基础语法  [expforiter_variniterable(ifconditional)]  基本原理:  最先迭代更新iterable里全部内容,每次迭代更新,都把iterable里对应的具体内容放在iter_var中,然后把关系式exp运用该iter_var的具体内容,依据标准进行分类  然后用关系式计算值形成一个全新的目录  先于for和if循环系统:  1、比for循环快...

    89542767 评论0 收藏0
  • Python技能树》Python简介

    摘要:火爆是当今非常热门的语言之一,根据年月编程语言排行,荣获年度编程语言称号,并且其流行度依然处在上升势头。学习完技能树之后,你将进入编程的大门,明白编程的作用,建立编程的兴趣方法和习惯。 ? 作者主页:不吃西红柿  ? 简介:CSDN博客专家?、HDZ核心组成员? 、Python领域优质创作者...

    BlackMass 评论0 收藏0
  • 共享13个非常有利的Python代码片段

      小伙伴们好,此篇文章主要是跟大家分享13个Python中非常有利的代码片段,有兴趣的同学们赶紧来看一下吧,对大家有所帮助得话不要忘记保存以下  ListsSnippets  大家从最常见的算法设计目录刚开始  1.把两个目录合拼成词典  假定大家在Python中有两种目录,我希望把它们合并为词典方式,其中的一个目录的项做为词典的键,另外做为值。这就是在用Python编写代码时经常碰到的一个很常...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<