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()
相关推荐
橘颂TA7 分钟前
【Linux】读写锁
大数据·linux·开发语言·c++·读写锁
lv__pf19 分钟前
集合框架1
java·开发语言
weixin_4249993622 分钟前
PHP源码在双硬盘系统如何优化_硬件存储分配建议【指南】
jvm·数据库·python
qq_1898070331 分钟前
json ignore反序列化?_?JSON反序列化时忽略字段的json----标签使用方法.txt
jvm·数据库·python
zhangchaoxies31 分钟前
让水平滚动条始终固定在页面底部,实现跨视口的横向滚动控制
jvm·数据库·python
justjinji39 分钟前
如何用组合继承模式实现父类方法复用与子类属性独立
jvm·数据库·python
We་ct40 分钟前
LeetCode 64. 最小路径和:动态规划入门实战
开发语言·前端·算法·leetcode·typescript·动态规划
CoderCodingNo41 分钟前
【CSP】CSP-J 2019 江西真题 | 次大值 luogu-P5682 (适合GESP四、五级及以上考生练习)
开发语言·c++·算法
djjdjdjdjjdj1 小时前
PHP函数如何监控CPU温度传感器_PHP读取核心温度硬件值【详解】
jvm·数据库·python
Hui Baby1 小时前
java抠图
java·开发语言