python进阶(夯实地基)
完善编程基础需要的知识点,提升编码能力及问题处理多样性
py~豆腐
全栈开发,擅长问题研究
开发经验丰富,灵活的问题处理方案
主要技术方向后端;
感兴趣的朋友点赞收藏,评论提问支持分享
现在慢慢搭建技术栈
展开
-
17.线程池
1.池的概念主线程: 相当于生产者,只管向线程池提交任务。 并不关心线程池是如何执行任务的。 因此,并不关心是哪一个线程执行的这个任务。线程池: 相当于消费者,负责接收任务, 并将任务分配到一个空闲的线程中去执行2.自定义线程池实现import datetimeimport timefrom queue import Queuefrom threading import Threadclass ThreadPool:原创 2022-05-08 17:37:43 · 298 阅读 · 0 评论 -
16.线程队列
1.什么是队列?队列(queue),是先进先出(FIFO, First-In-First-Out)的线性表,在具体应用中通常用链表或者数组来实现,队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作,队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加2.队列操作我们经常会遇到这样的一个问题,这里有成千上万条数据,每次需要取出其中的一条数据进行处理,那么引入多线程该怎么进行任务分配?我们可以将数据进行分割然后交给多个线程去跑,因原创 2022-05-05 16:54:43 · 238 阅读 · 0 评论 -
15.线程间的通信
互斥锁 在多线程中,所有变量对于所有线程都是共享的 因此,线程间共享数据最大的危险就在于多个线程同时修改同一变量数据 那就乱套了 所以需要互斥锁来锁住数据"""因为线程属于同一进程,因此他们之间共享内存区域------------------全局变量是公共的"""import threadinga = 1def func(): global a a += 1t1 = threading.Thread(target=func).原创 2022-05-05 16:52:48 · 155 阅读 · 0 评论 -
14.线程进阶操作(join,setDaemon)
1.主线程与子线程主线程与子线程的概念-----------------------------主线程:当一个程序启动时,就有一个线程开始运行(由上往下运行) 该线程通常叫做程序的主线程子线程:因为程序是开始时就执行的,如果需要再创建线程, 那么创建的线程就是这个主线程的子线程主线程的重要性体现在两个方面: 1.是产生其子线程的线程 2.通常它必须最后完成执行,比如执行各种关闭操作2.joinjoin: 阻塞调用原创 2022-04-28 16:28:05 · 244 阅读 · 0 评论 -
13.线程
1. 线程模块python通过两个标准库_thread和threading,提供对线程的支持,threading对_thread进行了封装threading模块提供了Thread,Lock,Block,Condition等组件因此实际的使用中我们一般都使用threading2.Thread类常用参数说明----target 表示调用对象,即线程要执行的任务----name 子线程的名称----args 传入target任务中的位置参数,是一个元组,参数间原创 2022-04-28 16:27:10 · 216 阅读 · 0 评论 -
12.实现日志流处理
1.简要处理流程1、创建一个logger2、设置下logger的日志的等级3、创建合适的Handler(FileHandler要有路径)4、设置下每个Handler的日志等级5、创建下日志的格式6、向Handler中添加上面创建的格式7、将上面创建的Handler添加到logger中8、打印输出logger.debug\logger.info\logger.warning\logger.error\logger.critical2.简要实现import loggi原创 2022-04-28 16:25:12 · 390 阅读 · 0 评论 -
10.日志模块-logging
1.日志概念"""a- 日志是一种可以追踪某些软件运行时所发生事件的方法。b- 软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情。c- 一个事件可以用一个可包含可选变量数据的消息来描述此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level)。"""通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应用log足够丰富,也可以分析以往用户的操作行为、类型喜好、地域分布或其他更多信息;如果一个应用的log同时也分了多个级别,那么原创 2022-04-28 16:19:22 · 568 阅读 · 0 评论 -
9.datetime模块
1.简介datetime是python处理时间的标准库2.基本方法类名注解data日期对象,常用属性:year, month, daytime时间对象,hour,minute,second,毫秒datetime日期时间对象,常用属性有year, month, day,hour,minute,second,毫秒(microsecond)timedelta时间间隔,返回时间间隔 days,seconds, microseconds,millisecond原创 2022-04-28 16:17:32 · 187 阅读 · 0 评论 -
8.base64模块
1.简介base64 --- url编码 - 正常的url中只能包含ASCLL字符的,也就是字母,字母和一些符号 - url编码就是一种用来避免url出现特殊字符(汉字之类的)编码方式 base64 是一种 用64个字符年表示任意二进制数据的方法 (将二进制数据编码成ascall字符)使用了A-Z,a-z,0-9,/ 这64个字符2.特点用来将非ascall字符的数据转化成ascall字符的一种方法常用对url的编码可以将不可打印的·1二原创 2022-04-26 14:00:50 · 244 阅读 · 0 评论 -
7.hashlib模块与加密解密
1.数据安全 -- 数据时代为了保证数据安全性,防止数据泄露,汪汪需要对数据进行加密; -- 对于敏感数据,加密措施更加令人发指 - 加密: 是最常用的安全保密手段,利用技术手段把重要的数据变为乱码传输; - 解密:到达目的后,再利用相同手段或者不同手段还原2.概念-- 对称加密 数据加密与解密使用相同的密钥-- 非对称加密 加密与解密用两把不同的密钥, 公钥用于加密数据 私钥用于解密数据原创 2022-04-26 13:57:39 · 3174 阅读 · 0 评论 -
6.json模块
1.简介 全称 JavaScript Object Notation (JavaScript对象表示法) 它是一种基于文体,独立于语言轻量级数据交换格式 以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成数据对象(键值对)json官网json python文档2.特点轻量级的文本数据交换格式易于人阅读和编写易于及其解析和生成web世界中最理想的数据交换格式3.json语法规则--------------------数据由键值对组成键值对之间原创 2022-04-26 13:55:34 · 1832 阅读 · 0 评论 -
5.liunx操作---常规操作
1.常规基础命令ls 列举出当前工作目录的内容ll 列举出当前工作目录的内容,包括隐藏文件及目录mkdir 用于新建一个新目录(mkdir 目录名)rmdir 用于删除一个目录(rmdir 目录名)pwd 显示当前工作目录cd 跳转到指定目录 (cd 回到根目录 cd .. 回到上一级目录 cd 绝对路径 跳转到指定位置原创 2022-04-26 13:53:31 · 826 阅读 · 0 评论 -
4.正则匹配与re模块
1.正则表达式正则表达式面向什么样的问题? 1.判断一个字符串是否匹配给定的格式(判断是不是邮箱或者电话号码) 2,从一个字符串里面根据指定规则提取信息(抓取页面中的链接或者其它信息) 2. re模块正则表达式写出来后需要使用那么需要使用re模块进行使用,提取及验证等操作re模块为内置模块使用时需要导包 ----- import re常用方法分为:findall, match, search修饰符(可选标志)修饰符描述re原创 2022-04-26 13:51:19 · 651 阅读 · 0 评论 -
3.生成器
python生成器,python迭代器原型与迭代器协议原创 2022-04-24 02:21:12 · 56 阅读 · 0 评论 -
2.迭代器
1.迭代# 简单点说迭代就是依次从数据结构中拿出东西的过程流程控制中直接性的迭代就是for循环for 迭代变量 in 可迭代对象: 每次循环会自动让迭代变量指向‘下一个元素’# for循环the_list = ['qwe', '1234', 1, '哈哈哈']for i in the_list: print(i) # while循环i = 0the_list = ['qwe', '1234', 1, '哈哈哈']while i < len(t原创 2022-04-24 02:15:06 · 58 阅读 · 0 评论 -
1.装饰器
1.介绍装饰器本质是函数(闭包函数) 能够在不变动原函数的情况下进行,给函数增加其它的功能2.函数装饰器def demo(function): def inner(): print('装饰器启用') function() print('结束') return 1 return inner@demodef data(): print('data函数')a = data()print(a)原创 2022-04-24 02:06:23 · 186 阅读 · 0 评论