python 列表生成字典,python字典录入学生成绩
本文主要详细介绍Python如何使用字典和列表实现一个简单的学生信息管理系统。文章中的详细评论通俗易懂,有需要可以参考。
本文将使用Python中的字典和链表来实现学生信息管理系统。
文件存储格式是python自带的pickle模块,需要创建新的course.txt和student.txt供程序读写。
以下是示例代码
进口泡菜
#从文件中读取学生信息并返回
def readStudent():
用open(student.txt , rb )作为f:
尝试:
返回pickle.load(f)
#读取失败,说明读取的文件为空,只返回空列表。
EOFError:除外
return []
#将学生信息student_list保存在文件student.txt中
def保存学生(学生_列表):
用open(student.txt , wb )作为f:
pickle.dump(学生列表,f)
#增加学生信息
def addStudent(student _ list):
Id=input(请输入要添加的学号: )
Name=input(请输入要添加的学生的姓名: )
性别=输入(请输入要添加的学生的性别: )
专业=输入(请输入要添加学生的专业课3360 )
#将这4个数据加载到字典student
Student={ 学号 :id,姓名 :name,性别 :sex,专业课 3360Specialty}
#将字典student添加到列表student_list中
学生_列表.追加(学生)
#删除学生信息
def删除学生(学生列表):
Id=input(请输入要删除的学号: )
对于范围(0,len(student_list)):内的I
# student_list[i]是一本字典。
If student_list[i][学生ID]==id:
#删除student_list中的第I个词典
student_list.pop(i)
打印(删除成功!)
Return # End函数
打印(删除失败,找不到该学生。)
#修改学生信息
def修改学生(学生列表):
Id=input(请输入要修改的学号: )
对于范围(0,len(student_list)):内的I
If student_list[i][学生ID]==id:
Id=input(请输入修改后的学号: )
Name=input(请输入修改后的名称: )
性别=输入(请输入修改后的性别: )
专业=输入(“请输入修改后的专业类别3360”)
#将这4个数据加载到字典student
Student={ 学号 :id,姓名 :name,性别 :sex,专业课 3360Specialty}
#用student替换student_list中的第I个词典
student_list[i]=学生
打印(修改成功!)
Return # End函数
打印(修改失败,找不到该学生。)
#显示所有学生信息
def showStudent(学生_列表):
打印(学号\ t \ t姓名\ t \ t性别\ t \ t专业课)
对于学生列表:中的学生
Print (%s \ t \ t% s \ t \ t% s \ t \ t% s%(学生[学号],学生[姓名],学生[性别],学生[专业课]))
#从文件中读取学生成绩信息
定义readCourse():
用open(course.txt , rb )作为f:
尝试:
返回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("学号\t\t英语\t\t数学\t\t计算机\t\t化学\t\t体育")
for course in course_list:
print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%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("学号\t\t英语\t\t数学\t\t计算机\t\t化学\t\t体育")
print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%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("学号\t\t姓名\t\t性别\t\t专业班级")
print("%s\t\t%s\t\t%s\t\t%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利用字典和列表实现学生信息管理系统的文章就介绍到这了,更多相关Python学生信息管理系统内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。