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()
相关推荐
晓晓hh1 天前
JavaSE学习——迭代器
java·开发语言·学习
Laurence1 天前
C++ 引入第三方库(一):直接引入源文件
开发语言·c++·第三方库·添加·添加库·添加包·源文件
kyriewen111 天前
你点的“刷新”是假刷新?前端路由的瞒天过海术
开发语言·前端·javascript·ecmascript·html5
014-code1 天前
String.intern() 到底干了什么
java·开发语言·面试
421!1 天前
GPIO工作原理以及核心
开发语言·单片机·嵌入式硬件·学习
极梦网络无忧1 天前
OpenClaw 基础使用说明(中文版)
python
codeJinger1 天前
【Python】操作Excel文件
python·excel
摇滚侠1 天前
JAVA 项目教程《苍穹外卖-12》,微信小程序项目,前后端分离,从开发到部署
java·开发语言·vue.js·node.js
@insist1231 天前
网络工程师-生成树协议(STP/RSTP/MSTP)核心原理与应用
服务器·开发语言·网络工程师·软考·软件水平考试
野生技术架构师1 天前
2026年牛客网最新Java面试题总结
java·开发语言