当前位置: 首页 > news >正文

第三次Python练习题

1.使用os和os.path以及函数的递归完成:给出一个路径,遍历当前路径所有的文件及文件夹打印输出所有的文件(遇到文件输出路径,遇到文件夹继续进文件夹)

import os import os.path def list_all_file(path): for name in os.listdir(path): #逐个遍历这个名称列表,每次循环拿到一个文件 / 文件夹的名称 name。 file_path = os.path.join(path,name) #把当前路径 path 和名称 name 拼接成完整的文件 / 文件夹路径。 if os.path.isfile(file_path):#判断 file_path 是否是一个文件。 print(file_path) elif os.path.isdir(file_path): #判断 file_path 是否是一个文件夹。 list_all_file(file_path) if __name__ == "__main__": list_all_file("D:\\Python\\code\\05.Python-io")

2.使用加密模块及IO模拟登录功能,要求使用文件模拟数据库存储用户名和密码。

import hmac datebase = {} def encryption_admin(str): salt = "%%$$&&".encode("utf-8") return hmac.new(str.encode("utf-8"),salt,"md5").hexdigest() datebase["username"] = encryption_admin("zhangsan") datebase["password"] = encryption_admin("111") username = input("请输入用户名:") password = input("请输入密码:") if (encryption_admin(username) == datebase["username"]) and (encryption_admin(password) == datebase["password"]): print("login success") else: print("login failure")

3.使用面向对象编程完成学生信息录入功能,数据存储在本地文件txt中并读取学生信息并按照成绩进行排序,学生其他属性自行规划

class Student: """学生类""" def __init__(self, name, age, score): self.name = name self.age = int(age) self.score = float(score) def __str__(self): """打印信息""" return f"姓名:{self.name}, 年龄:{self.age}, 成绩:{self.score}" def __lt__(self, other): return self.score < other.score def __eq__(self, other): return self.name == other.name and self.age == other.age and self.score == other.score def __hash__(self): return hash((self.name, self.age, self.score)) def save_student(name, age, score): """保存学生信息""" try: with open("D:\\Python\\code\\05.Python-io\\student.txt", "a", encoding="utf-8") as f: f.write(f"{name},{age},{score}\n") print("保存成功") except Exception as e: print("异常信息:", e) def read_student(): """读取学生信息""" students = set() try: with open("D:\\Python\\code\\05.Python-io\\student.txt", "r", encoding="utf-8") as f: for line in f: name, age, score = line.strip().split(",") students.add(Student(name, age, score)) except Exception as e: print("异常信息:", e) return list(students) # 将集合转换为列表 def input_student(): """录入学生信息""" students = [] while True: name = input("请输入学生姓名(输入q结束):") if name == "q": break age = input("请输入学生年龄:") score = input("请输入学生成绩:") student = Student(name, age, score) students.append(student) save_student(name, age, score) return students def sort_student(students): """排序""" students.sort(reverse=True) return students if __name__ == "__main__": # 录入学生信息 students = input_student() # 保存学生信息 for student in students: save_student(student.name, student.age, student.score) # 读取学生信息 students = read_student() # 排序学生信息 sorted_students = sort_student(students) # 打印排序后的学生信息 print("排序后的学生信息:") for s in sorted_students: print(s)

http://www.jsqmd.com/news/340057/

相关文章:

  • 2026年知名的餐厅厨房设备/梦远厨房设备用户口碑认可厂家 - 行业平台推荐
  • 2026年口碑好的扬州龙凤呈祥无人机/无人机表演全方位厂家推荐参考 - 行业平台推荐
  • C++之【深入理解Vector】三部曲之二
  • 全网最强汉字游戏:汉字加一笔耶
  • YOLO26最新创新改进系列:叫叫兽原创二次创新!上下文+CBAM捕捉中远距离像素间的语义关联,将全局场景信息有效融合到局部特征中,为YOLO26提供了原本缺失的“大局观”,有效涨点,嘎嘎创新!!!!
  • 【工具】基于Cloudflare的导师评价网
  • 标准漏孔生产厂家/气密检测设备哪家好?2026年优质标准漏孔生产厂家大盘点!气密检漏仪优选汇总 - 栗子测评
  • 2026杭州免费咨询律所推荐+杭州律师事务所推荐+杭州本地律所推荐杭州企业法律顾问哪家好合集! - 栗子测评
  • 2026年比较好的龙凤无人机/龙凤呈祥无人机厂家口碑推荐汇总 - 行业平台推荐
  • 2026年口碑好的陕西有机水溶肥用户好评厂家推荐 - 行业平台推荐
  • 在单片机串口接收程序中,通常每接收完一条报文就添加一条接收时间,而不是每接收一个字节。这是因为报文是逻辑单元,添加时间戳到完整报文更合理和高效。
  • 电脑端串口助手一个时间戳后面跟几条完整报文,而不是每条报文添加一个时间戳,这是依据什么确定添加接收时间戳
  • 还要多久?NASA卫星从太空俯瞰,那条通往“正义”的道路
  • 什么是住宅代理IP?
  • 使用 Depth Anything V2 进行单目深度估计
  • 设计模式 -详解
  • 2026年2月密集母线槽顶尖制造厂商深度评测与推荐 - 2026年企业推荐榜
  • 2026年靠谱的天然生物刺激素用户好评厂家推荐 - 行业平台推荐
  • 超1400个 MongoDB 数据库遭勒索
  • 2026年四川照明路灯供货商综合评测与选型指南 - 2026年企业推荐榜
  • 去哪儿网白盒漏洞 AI 运营实践
  • 2026年口碑好的陕西生物刺激素/陕西天然生物刺激素厂家专业度参考(精选) - 行业平台推荐
  • 2026年2月络合铁脱硫信誉供应商综合评选与选型指南 - 2026年企业推荐榜
  • 智能储物柜定制厂家+智能储物柜源头工厂,2026专业快递柜生产厂家优选盘点 - 栗子测评
  • 武汉高端眼镜店深度评测:如何甄选专业服务商 - 2026年企业推荐榜
  • Ps:清晰度和去除薄雾
  • 2026年口碑好的咖啡机/全自动咖啡机行业内口碑厂家推荐 - 行业平台推荐
  • 一文吃透 JavaScript 模块化:从 IIFE 到 ESM 的演进与实战
  • PPT配图神器01Agent:3秒生成可编辑配图,AI帮你告别找图烦恼
  • 港科校友|李铭鸿,李泓曦:一脉相承