python第三次作业

题目为:

课堂练习,完成学生信息录入系统,直接存储在文件中,存储方式如下

#读取文件并对其学号排序并打印

"""

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)

运行结果:

相关推荐
橙序员小站1 小时前
Agent Skill 是什么?一文讲透 Agent Skill 的设计与实现
前端·后端
怒放吧德德1 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆3 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
炫饭第一名3 小时前
速通Canvas指北🦮——基础入门篇
前端·javascript·程序员
王晓枫4 小时前
flutter接入三方库运行报错:Error running pod install
前端·flutter
符方昊4 小时前
React 19 对比 React 16 新特性解析
前端·react.js
ssshooter4 小时前
又被 Safari 差异坑了:textContent 拿到的值居然没换行?
前端
曲折4 小时前
Cesium-气象要素PNG色斑图叠加
前端·cesium
Forever7_4 小时前
Electron 淘汰!新的桌面端框架 更强大、更轻量化
前端·vue.js
Angelial4 小时前
Vue3 嵌套路由 KeepAlive:动态缓存与反向配置方案
前端·vue.js