python第三次作业

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

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

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

python 复制代码
import os
from os import path
#创建递归函数
def scanner_file(url):
    files = os.listdir(url)
    for i in files:    
        real_path = path.join(url,i)#拼接当前项的路径
        if path.isfile(real_path):#判断是否为文件,若是则打印完整路径
            print(real_path)
        elif path.isdir(real_path):#判断是否为目录,若是则继续递归调用自身进行扫描
            scanner_file(real_path)
        else:
            print("其他情况")
            pass
scanner_file("E:\云计算")

运行结果

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

python 复制代码
import hmac
database = {}
def encryption_admin(str):
    slat = "&^$$^$&&()*^#@!".encode("utf-8")
    return hmac.new(str.encode("utf-8"),slat,"md5").hexdigest()
#初始化数据库中的用户名和密码哈希值
database["username"] = encryption_admin("zhangsan")
database["password"] = encryption_admin("123456")
username,password = input("请输入用户名和密码并使用空格分隔:").split(" ")
#验证哈希值
if (encryption_admin(username) == database["username"] and encryption_admin(password) == database["password"]):
    print("login success")
else:
    print("login failure")

运行结果

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

python 复制代码
import time
students = []
def main():
    while True:
        i = int(input("是否继续录入(1为继续,0为退出):"))
        if (i == 1):
            name = input("请输入学生姓名:")
            number = input("请输入学生学号:")
            score1 = int(input("请输入学生语文成绩:"))
            score2 = int(input("请输入学生数学成绩:"))
            score3 = int(input("请输入学生英语成绩:"))
            score4 = "学生总成绩:",score1+score2+score3
            student = {
                "姓名" : name,
                "学号" : number,
                "语文" : score1,
                "数学" : score2,
                "英语" : score3,
                "总分" : score4
            }
            students.append(student)
        else:
            break
    #按总分升序
    students.sort(key=lambda x: x["总分"],reverse=True)
    for item in students:
        print(f"姓名:{item['姓名']},学号:{item['学号']},语文:{item['语文']},数学:{item['数学']},英语:{item['英语']},总分:{item['总分']}")
def input_student(students):
    with open("student.txt","a+",encoding="utf-8") as f:
        f.write(f",录入时间:{time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())}\n")
        for item in students:
            f.write(f"姓名:{item['姓名']},学号:{item['学号']},语文:{item['语文']},数学:{item['数学']},英语:{item['英语']},总分:{item['总分']}\n")
if __name__ == '__main__':
    main()
    input_student(students)

运行结果

相关推荐
二进制漫游记3 分钟前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
2501_928996227 分钟前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
泡干脆面就番茄2 小时前
MySQL_子查询_分页查询与联合查询详解
数据库·mysql
devpotato3 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
天若有情6733 小时前
Node+MySQL小型全栈笔记项目实战课程分享
数据库·笔记·mysql
wxwx_bscxy3224 小时前
基于springboot宠物领养系统的设计与实现
数据库·spring boot·后端·spring·宠物
九月要晚安4 小时前
达梦DW与AFC对比
数据库
实战派K8S&DB5 小时前
如何在内网配置 TiDB 数据库 Agent
数据库·人工智能·分布式·tidb
实战派K8S&DB5 小时前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
SelectDB5 小时前
Apache Doris 5.0 年度版本前瞻(一):构建统一的多模湖仓实时分析平台
大数据·数据库·数据分析