python练习五

Title1:请实现一个装饰器,每次调用函数时,将函数名字以及调用此函数的时间点写入文件中

代码:

python 复制代码
import time
time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 获取当前的时间戳
# 定义一个有参装饰器来实现写入文件时加上时间和函数名
def tianjia(time):
    def logo(func):
        def wrapper():
            with open("file.text", "w", encoding="utf-8") as f:
                f.write(f"时间点{time},文件名:{func.__name__}\n")
                res = func()
                f.write(f"执行结果:{res}\n")

        return wrapper

    return logo



@tianjia(time)
def main():
    print("Hello")

if __name__ == '__main__':
    main()

Title2:编写一个装饰器,每执行一个函数,记录函数名称及函数执行时间,并写入log.text文件中

代码:

python 复制代码
import time
def w_file_time(time):
    def logo(func):
        def wrapper():
            with open("log.text", "a", encoding='utf-8') as f:
                f.write(time.strftime("%Y-%m-%d:%H--%M--%S", time.localtime()) + "\n函数名称:" + w_file_time.__name__)
                func()
        return wrapper
    return logo


@w_file_time(time)
def w_file():
    with open('test.txt', 'a') as f:
        f.write("这是一个函数")

if __name__ == '__main__':
    w_file()

Title3:使用with语法完成文件的复制

代码:

python 复制代码
with open("cope.text", 'a+', encoding='utf-8') as f, open("stickup.text", 'w+', encoding='utf-8') as t:
    f.write("这是一个复制的文件")  # 标识一下复制的文件
    t.write("粘贴后:" + f.read())  # 把查看到的内容写入别名为t的文件中同时加上一段文件进行标识
    print(t)

Title4:完成登录系统,登录时数据使用序列化和反序列化

代码:

python 复制代码
import pickle
# 定义一个初始的用户列表,由于是登录验证有用户名和密码,所以里面的元素是字典
users_list = [
    {"username": "John", "password": "123456"},
    {"username": "lisi", "password": "123456"},
    {"username": "wangwu", "password": "123456"},

]
# 打开文件进行序列化,是假设以上的users_list是在一个文件中的而不是在代码中
with open("user_list.text", "wb") as f:
    pickle.dump(users_list, f)


# 定义一个装饰器使得登录的函数可以实现序列化和反序列化
def serialization(func):
    def wrapper():
        with open('user_list.text', 'rb') as file:
            users = pickle.load(file)
        func(users)

    return wrapper


@serialization  # 通过装饰器来使得简单的一个登录需要序列化和反序列化
# 定义一个登录的函数
def loging(users):
    username = input("请输入你的用户名:")
    password = input("请输入你的密码:")
    # 判断用户名和密码是否与用户列表中的匹配
    for user in users:
        if user['username'] == username and user['password'] == password:  
            print('用户名和密码匹配成功')
            break
    else:
        print('用户名和密码匹配不成功')


if __name__ == '__main__':
    loging()
相关推荐
Java探秘者12 分钟前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
攸攸太上12 分钟前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway
2301_7869643618 分钟前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
2303_8120444621 分钟前
Bean,看到P188没看了与maven
java·开发语言
苹果醋321 分钟前
大模型实战--FastChat一行代码实现部署和各个组件详解
java·运维·spring boot·mysql·nginx
秋夫人23 分钟前
idea 同一个项目不同模块如何设置不同的jdk版本
java·开发语言·intellij-idea
m0_6640470228 分钟前
数字化采购管理革新:全过程数字化采购管理平台的架构与实施
java·招投标系统源码
萧鼎1 小时前
Python调试技巧:高效定位与修复问题
服务器·开发语言·python
aqua35357423581 小时前
蓝桥杯-财务管理
java·c语言·数据结构·算法
Deryck_德瑞克1 小时前
Java网络通信—TCP
java·网络·tcp/ip