python练习五

news/2024/10/18 14:25:13/

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 wrapperreturn 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 wrapperreturn 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('用户名和密码匹配成功')breakelse:print('用户名和密码匹配不成功')if __name__ == '__main__':loging()


http://www.ppmy.cn/news/1466213.html

相关文章

C++11 在 Windows 环境下的多线程编程指南

引言 随着多核处理器的普及,利用多线程编程来提升应用程序性能变得越来越重要。C11 标准库引入了一系列用于多线程编程的API,使得多线程编程变得更加简洁和高效。 一、基本概念 在开始编写多线程代码之前,了解一些基本概念是非常重要的&am…

linux学习:进程通信 管道

目录 例子1 父进程向子进程发送一条消息,子进程读取这条消息 例子2 mkfifo 函数创建一个命名管道 例子3 mkfifo 函数创建一个命名管道处理可能出现的错误 例子4 管道文件是否已存在 例子5 除了“文件已存在”进行处理 例子6 创建一个命名管道&…

2024年最适合中小型企业的顶级12款CRM系统对比

适合中小企业的CRM系统包括:纷享销客、Zoho CRM、HubSpot CRM、Freshsales、Pipedrive、Monday Sales CRM、Salesmate、Capsule CRM、金蝶云CRM、用友CRM、有赞CRM、简信CRM。 在现代商业运营中,CRM(客户关系管理)系统已成为不可或…

小白跟做江科大32单片机之旋转编码器计次

原理部分按照下面这个链接理解即可y小白跟做江科大32单片机之对射式红外传感器计次-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139350487https://blog.csdn.net/weixin_58051657/article/details/139350487 实验过程 1.按照江科大老师给的电路图进行连接…

MySQL Doublewrite Buffer 有了解过吗?

引言:在数据库管理中,确保数据的完整性和一致性是至关重要的。然而,在持久化数据到磁盘的过程中,可能会遇到各种意外情况,如断电或系统崩溃,从而导致部分数据写入,而另一部分数据未能成功写入&a…

数据结构 实验 1

题目一:用线性表实现文具店的货品管理问题 问题描述:在文具店的日常经营过程中,存在对各种文具的管理问题。当库存文具不足或缺货时,需要进货。日常销售时需要出库。当盘点货物时,需要查询货物信息。请根据这些要求编…

eNSP——两台电脑通过一根网线直连通信

一、拓扑结构 二、电脑配置 ip和子网掩码,配置两台电脑处于同一网段 三、测试 四、应用 传文件等操作,可以在一台电脑上配置FTP服务器

PyTorch、显卡、CUDA 和 cuDNN 之间的关系

概述 PyTorch、显卡、CUDA 和 cuDNN 之间的关系及其工作原理可以这样理解: 显卡 (GPU) 显卡,特别是 NVIDIA 的 GPU,具有大量的并行处理单元,这些单元可以同时执行大量相似的操作,非常适合进行大规模矩阵运算&#x…