Python作业3

1.使用os和os.path以及函数的递归完成:

给出一个路径,遍历当前路径所有的文件及文件夹

打印输出所有的文件(遇到文件输出路径,遇到文件夹继续进文件夹)

python 复制代码
import os
def file(path):
    for item in os.listdir(path):
        item_path = os.path.join(path,item)
        if os.path.isfile(item_path):
            print(item_path)
        elif os.path.isdir(item_path):
            file(item_path)
file("C:\\Users\Z\Desktop\python\code")

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

python 复制代码
import hashlib as h
def encryption(str):
    salt = "@@@"
    res = h.md5(str.encode("utf-8"))
    res.update(salt.encode("utf-8"))
    return res.hexdigest()
 
username_database = encryption("zhangsan")
password_database = encryption("1234")
 
f = open("./database.txt","w+")
f.write("用户名:zhangsan\n")
f.write("密码:1234")
f.close()
 
def login(username,password):
    if encryption(username) == username_database and encryption(password) == password_database:
        print("登录成功")
    else:
        print("登录失败")
 
username = input("请输入用户名:")
password = input(("请输入密码:"))
 
login(username,password)

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

python 复制代码
class Student:
    def __init__(self,number,name,score):
        self.number = number
        self.name = name
        self.score = score
    def __str__(self):
        return f"number:{self.number},name:{self.name},score:{self.score}"
 
class StudentManage:
    def __init__(self):
        self.students = []
    def add_student(self,number,name,score):
        student = Student(number,name,score)
        self.students.append(student)
    def sort_score(self):
        self.students.sort(key=lambda x : -x.score)
    def test_txt(self,filename):
        with open(filename,"a+",encoding="utf-8") as f:
            for student in self.students:
                f.write(f"{student}\n")
    def main(self):
        while True:
            running = int(input("请选择要进行的操作:1.录入 2.退出"))
            if running == 1:
                number = input("请输入学生学号:")
                name = input("请输入学生姓名:")
                score = int(input("请输入学生成绩:"))
                self.add_student(number, name, score)
            else:
                break
        self.sort_score()
        self.test_txt("student_info.txt")
 
if __name__ == "__main__":
    res = StudentManage()
    res.main()
相关推荐
优橙教育2 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
想会飞的蒲公英3 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel4 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记4 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
CCPC不拿奖不改名5 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code5 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook5 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
Miao121315 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城6 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源