题目为:
课堂练习,完成学生信息录入系统,直接存储在文件中,存储方式如下
#读取文件并对其学号排序并打印
"""
name: "张三",age:20,student_number:371897281,score_total=495
name: "三",age:20,student_number:371897281,score_total=495
name: "三",age:20,student_number:371897281,score_total=495
name: "三",age:20,student_number:371897281,score_total=495
"""
python
#导入序列化模块
import pickle
list2 = [] #创建一个列表
#循环输入,可自行决定输入多少数据
while True:
running = int(input("请选择操作:1、输入学生信息;2、退出操作:"))
if running == 1:
name = input("请输入姓名name:")
age = int(input("请输入年龄age:"))
student_number = int(input("请输入student_number:"))
score_total = int(input("请输入score_total:"))
student = {} #创建一个字典 因为k:v对形式存储的数据
student["mame"] = name
student["age"] = age
student["student_number"] = student_number
student["score_total"] =score_total
list2.append(student) #append()在其list2中末尾添加student的元素
else :
break
res = pickle.dumps(list2) #序列化 dumps
with open("05python-io\list2.txt","wb") as l1:
l1.write(res)
with open("05python-io\list2.txt","rb") as l2:
res2 = l2.read()
list2_res = pickle.loads(res2) #反序列 loads
print("排序前录入的顺序:",list2)
list2.sort(key = lambda x:x["student_number"])
print("排序后录入的顺序:",list2)
运行结果:
