python练习五

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

        代码:

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文件中     

        代码:

        

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语法完成文件的复制

        代码:

        

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:完成登录系统,登录时数据使用序列化和反序列化

        代码:

        

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.mzph.cn/web/21195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 僵尸进程和孤儿进程

一.Z(zombie)-僵尸进程 1.僵死状态(Zombies)是一个比较特殊的状态。当进程退出并且父进程(使用wait()系统调用后)没有读取到子进程退出的返回代码时就会产生僵死(尸)进程 2.僵死进程会以终止状态保持在进程表中,并且会…

【代码随想录37期】Day24 回溯 组合

理论基础 回溯是一种搜索方式,通常通过穷举来解决问题,核心思想是从一个初始状态出发、暴力搜索所有可能的方案,遇到正确的解法则记录下来,直到结束,这是一个典型的深度优先搜索思想:不撞南墙不回头 回溯…

Java17 --- SpringCloud之seate

目录 一、创建seata需要的mysql数据库表 二、修改seata的配置文件 三、启动nacos及seata 四、创建需要的数据库及表 一、创建seata需要的mysql数据库表 CREATE DATABASE seata;CREATE TABLE IF NOT EXISTS global_table(xid VARCHAR(128) NOT NULL,…

C++ | Leetcode C++题解之第128题最长连续序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int longestConsecutive(vector<int>& nums) {unordered_set<int> num_set;for (const int& num : nums) {num_set.insert(num);}int longestStreak 0;for (const int& num : num_set) {…

隐马尔可夫链

1 马尔可夫链 马尔科夫链&#xff08;Markov Chain&#xff09;是一种数学模型&#xff0c;它描述了一系列可能事件的概率&#xff0c;其中每个事件的发生仅依赖于前一个事件的状态。这一特性称为“无记忆性”或“马尔可夫性质”。我将用一个简单的天气预测模型作为例子来解释马…

【组合数学 隔板法 容斥原理】放球问题

本文所属分类 组合数学汇总 8类放球问题 放球问题是一类很有意思的排列组合问题。通俗来说&#xff0c;就是把n个小球放到m个盒子里&#xff0c;问有几种放法。具体可以从3个维度&#xff0c;每个维度2种情况&#xff0c;共8种情况&#xff1a; 维度一&#xff1a;小球是否相…

对象业务的追加写接口

类似文件的追加写操作&#xff0c;在对象的末尾增加新的数据内容。 本文有如下假定&#xff1a; 对象存储服务基于文件语义实现。使用PUT方式上传的对象&#xff0c;内部使用一个文件和对应的元数据来承载。使用多段方式上传的对象&#xff0c;内部使用多个段文件、元数据来承…

【面试题-012】什么是Spring 它有哪些优势

文章目录 Spring有哪些优势有哪些优势Spring和Springboot区别在 Spring 框架中&#xff0c;什么是AOP核心概念应用场景 Spring有哪些通知类型 Spring 是一个开源的 Java 平台&#xff0c;由 Rod Johnson 创建&#xff0c;用于简化企业级 Java 应用程序的开发。它于 2003 年首次…

T-Pot多功能蜜罐实践@debian12@FreeBSD

T-Pot介绍 T-Pot是一个集所有功能于一身的、可选择分布式的多构架&#xff08;amd64&#xff0c;arm64&#xff09;蜜罐平台&#xff0c;支持20多个蜜罐和很多可视化选项&#xff0c;使用弹性堆栈、动画实时攻击地图和许多安全工具来进一步改善欺骗体验。GitHub - telekom-sec…

15.FreeRTOS数据结构:StreamBuffer,MessageBuffer和Queue的区别

FreeRTOS数据结构&#xff1a;StreamBuffer&#xff0c;MessageBuffer和Queue的区别 介绍 在嵌入式系统开发中&#xff0c;任务间的通信是非常重要的一部分。FreeRTOS提供了多种数据结构来实现任务间的通信&#xff0c;包括StreamBuffer&#xff0c;MessageBuffer和Queue。这…

SpringBootWeb登录认证

JWT令牌 JSON Web Token JSON Web Tokens - jwt.ioJSON Web Token (JWT) is a compact URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is digitally signed using JSON Web Signatur…

MogDBopenGauss查询重写规则uniquecheck

在MogDB&openGauss中&#xff0c;参数rewrite_rule用于控制查询重写&#xff0c;本文介绍查询重写规则uniquecheck uniquecheck表示提升无agg的where子查询 现在有如下例子 orcl> explain analyze select count(*)from test01 t1where t1.data_object_id (select data…

文件系统和日志分析

文件系统 概述 文件是存储在硬盘上的。硬盘上的最小存储单位是扇区&#xff0c;每个扇区的大小是512字节。 inode号&#xff1a;又叫索引号&#xff0c;保存的是元信息&#xff08;主要有文件的属性 &#xff1a;包括权限&#xff0c;创建者&#xff0c;创建日期等&#xff…

Nodejs 调用langchain的实验

langchain 支持js/ts 语言&#xff0c;可以在nodeJs 中调用langchain 。这有利于在网站后台软件中使用&#xff0c;本博文记录做的小实验。 安装与升级 升级node 直接在官网下载&#xff0c;重新安装就可以了。 安装大模型模块 npm install openai 安装langchain npm insta…

Renesas MCU之使用e² studio搭建开发环境

目录 概述 1 e studio介绍 2 搭建Renesas MUC开发环境 2.1 软件版本信息 2.2 安装软件 3 创建工程 3.1 板卡硬件接口 3.2 FSP配置IO 4 Generate Project 4.1 项目目录介绍 4.2 LED接口相关驱动 5 调试 5.1 测试代码 5.2 J-Link调试代码 5.3 硬件结构 概述 本文主…

ES6-01-简介

一、什么是ES6&#xff1f; 每年一个版本o(╥﹏╥)o。 二、javaScript新特性的特点 1、语法简洁&#xff0c;功能丰富&#xff1b; 2、框架开发应用。 3、岗位需求&#xff01; 三、let关键字 3-1、声明变量 let a;let a,b;let e100;let f521, gmilk-love, h[]; 3-2、声明的…

python采集汽车价格数据

python采集汽车价格数据 一、项目简介二、完整代码一、项目简介 本次数据采集的目标是车主之家汽车价格数据,采集的流程包括寻找数据接口、发送请求获取响应、解析数据和持久化存储,先来看一下数据情况,完整代码附后: 二、完整代码 #输入请求页面url #返回html文档 imp…

Linux C/C++目录操作

获取当前目录 #include <unistd.h>char *getcwd(char *buf,size_t size); char *get_current_dir_name(void);//注意释放内存 malloc() free()切换工作目录 #include <unistd.h>int chdir(const char *path);//0成功&#xff0c;其他失败&#xff08;目录不存在…

fbd编程语言:深度解析与未来展望

fbd编程语言&#xff1a;深度解析与未来展望 在编程语言的浩瀚海洋中&#xff0c;fbd编程语言以其独特的魅力和潜力&#xff0c;逐渐引起了开发者的关注。那么&#xff0c;fbd编程语言究竟有何特别之处&#xff1f;它的发展前景又如何呢&#xff1f;本文将从四个方面、五个方面…

PostgreSQL的视图pg_class

PostgreSQL的视图pg_class 在 PostgreSQL 中&#xff0c;pg_class 是一个系统目录表&#xff0c;用于存储所有关系&#xff08;如表、索引、视图、序列等&#xff09;的元数据。pg_class 是数据库系统的重要组成部分&#xff0c;包含了关于每个关系的具体信息。 pg_class 视图…