
Python专栏
文章平均质量分 74
python的基础和进阶,技术难点解析,常用包和模块的总结,框架介绍和项目实战
陆·柒
失败了 别给自己找理由 就是菜而已!
展开
-
【python专栏介绍】
其中不仅包含基础知识点,还有日常遇到的问题及解决方法总结。原创 2020-12-05 17:21:37 · 3109 阅读 · 0 评论 -
【专题】python中的协程库—greenlet和gevent
Python 的协程库 greenlet 和 gevent转载 2020-12-25 09:30:45 · 928 阅读 · 0 评论 -
【专题】python源码解读
文章目录准备工作Python整体结构源码目录Python对象Python内对象类型对象对象的创建类型的类型Python中的整数对象小整形对象大整数对象准备工作Python整体结构python架构主要分为三部分python文件python解释器scanner词法分析,将代码且分为一个个tokenparser词法分析建立ASTcompiler根据AST生成python字节码code Evaluator(虚拟机)执行这些字节码运行时环境内建对象:list dict内存分配器:和转载 2021-03-24 09:22:25 · 3326 阅读 · 1 评论 -
【专题】编写你自己的PDF编辑器, 实现PDF页面提取, 页面合并与替换
PDF页面提取, 页面合并与替换原创 2020-12-09 21:08:01 · 2811 阅读 · 0 评论 -
【专题】python操作文件(txt,csv,word,pdf,图片等)—一次性搞清楚,让你提高办公效率
python操作文件文章主要分为三部分首先介绍一下python中操作文件的方法具体介绍如何操作不同类型的文件,例如txt、csv、word、pdf等为什么都说python能够提高办公效率?原创 2020-12-08 21:29:03 · 3005 阅读 · 0 评论 -
【专题】常见的设计模式—python实现
设计模式创建型模式单例模式工厂模式构造者模式原型模式结构型模式适配器模式装饰器模式外观模式享元模式模型-视图-控制器模式代理模式行为型模式责任链模式命令模式解释器模式观察者模式状态模式策略模式模板模式创建型模式单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个原创 2020-12-18 09:55:27 · 846 阅读 · 0 评论 -
【专题】如何应对面试官的拷问—你了解python的装饰器吗?
python之详解装饰器应用场景 Python的装饰器(decorator)可以说是Python的一个神器,它可以在不改变一个函数代码和调用方式的情况下给函数添加新的功能。Python的装饰器同时也是Python学习从入门到精通过程中必需要熟练掌握的知识。今天尝试用浅显的语言解释下Python装饰器的工作原理及如何编写自己的装饰器吧。应用场景面试官:你了解装饰器吗?...原创 2020-12-11 10:56:27 · 2552 阅读 · 1 评论 -
【专题】一文让你彻底明白python中的进程、线程、协程、GIL
文章内容可能会比较长,针对每一部分的内容,建议深入了解,我之所以把这些知识点放在一起解析,\color{red}{文章内容可能会比较长,针对每一部分的内容,建议深入了解,我之所以把这些知识点放在一起解析,}文章内容可能会比较长,针对每一部分的内容,建议深入了解,我之所以把这些知识点放在一起解析,一是想比较清晰的整理出来,遇到问题不用到处找,二是坚持学完python中的这一部分知识,不要只是一知半解。\color{purple}{ 一是想比较清晰的整理出来,遇到问题不用到处找,二是坚持学完python中的这原创 2020-12-17 15:00:51 · 990 阅读 · 0 评论 -
【专题】谈谈python中的“魔法函数“
python中常用的魔法函数__init()____str__()__new()____unicode__()__call__()__len__()__repr__()__setattr__()__getattr__()__setitem__()__getitem__()__delattr__()__delitem__()__iter__()__del__()init()所有类的超类object,默认包含__init__()实现,这个函数会在对象初始化的时候调用,我们可以选择实现,也可以选择不实现,一般原创 2020-12-17 09:36:18 · 749 阅读 · 0 评论 -
【专题】python之迭代器、生成器、推导式
python之迭代器、生成器、推导式迭代器生成器定义生成器生成器的作用yield from推导式列表推导式生成器推导式字典推导式集合推导式总结总结1总结2迭代器在《python基础》专栏中,我们介绍了python中的各种数据类型,每种数据类型我们都可以进行循环遍历,我们习惯把这种对象称为可迭代对象,那么到底什么是可迭代对象.我们现在就来讨论讨论可迭代对象.首先我们先回顾下我们熟知的可迭代对象有哪些:str list tuple dic set 那为什么我们称他们为可迭代对象呢?因为他们都遵循了可迭代协原创 2020-12-10 23:03:10 · 2034 阅读 · 0 评论 -
【专题】一文带你详解python中的垃圾回收机制
python中的垃圾回收机制在学习完python的基础语法之后,感觉自己啥都会了。但是在面试的时候,往往面试官会让讲讲python的垃圾回收,而回答总是只言片语或者没有头绪。本篇就详细的解析一下,话不多说,直接进入主题。引用计数Python垃圾回收主要以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个ob_ref,用来记录当前对象被引用的次数,也就是来追踪到底有多少引用指向了这个对象下面的几种情况,该对象的引用计数器+1对象被创建 a=14对象被引用 b=a对象被作为原创 2020-12-06 09:14:55 · 3087 阅读 · 0 评论 -
【专题】详谈python的sort、sorted、map、filter、reduce 函数
sort()描述sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。语法list.sort( key=None, reverse=False)参数key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)l = [(2, 2), (3, 4), (4, 1), (1,原创 2020-12-07 09:01:48 · 3765 阅读 · 1 评论 -
【专题】python之赋值、浅拷贝、深拷贝
python之赋值、浅拷贝、深拷贝赋值浅拷贝copy模块里面的copy方法实现对内部元素影响深拷贝copy模块里面的deepcopy方法实现赋值在python中,变量的赋值实际就是简单的对象引用,在创建一个对象后,将这个对象赋值给另外一个变量时,python并没有拷贝这个对象,只是拷贝这个对象的引用。# 定义列表alistalist = [1, 2, 3]# 赋值于变量blistblist = alist# 查看alist与blist的内存地址 print('alist id = ',原创 2020-12-10 09:05:42 · 2766 阅读 · 0 评论 -
【专题】python之作用域和闭包详解
python之作用域和闭包详解作用域介绍几个相关的概念python的作用域作用域产生案例和几个关键字变量的声明和使用global关键字nonlocal关键字闭包特别简单的介绍闭包的陷阱作用域介绍作用域,也叫名称空间。几个相关的概念全局名称空间:创建的存储“变量名与值的关系”的空间叫做全局名称空间局部名称空间:在函数的运行中开辟的临时的空间叫做局部名称空间内置名称空间:内置名称空间中存放了python解释器为我们提供的名字:input,print,str,list,tuple…它们都是我们熟悉的原创 2020-12-08 11:50:50 · 3452 阅读 · 2 评论 -
【专题】python(list&tuple区别)&(索引和切片的理解)
元组和列表最大的一个区别就是:,列表是可以修改的,元组不支持修改(这是面试必须点出的)可以看到,对于列表和元组来说,虽然它们都是空的,但元组却比列表少占用 16 个字节,这是为什么呢?事实上,就是由于列表是动态的,它需要存储指针来指向对应的元素(占用 8 个字节)。另外,由于列表中元素可变,所以需要额外存储已经分配的长度大小(占用 8 个字节)。但是对于元组,情况就不同了,元组长度大小固定,且存储元素不可变,所以存储空间也是固定的。对于静态变量,如果在内存中占用的空间不大,python会暂存这部分内存,这原创 2022-06-02 02:45:09 · 273 阅读 · 0 评论 -
【专题】python中各种时间格式之间转化
python中各种时间格式之间转化原创 2022-07-06 20:19:45 · 611 阅读 · 0 评论 -
【专题】python自定义封装logging
python的logging模块详细介绍:python logging模块原创 2022-07-13 16:03:14 · 671 阅读 · 1 评论 -
【专题】python封装MySQL类
Python创建连接MySQL类原创 2022-07-07 19:56:37 · 693 阅读 · 0 评论 -
【专题】python常用数据类型转换
python常用数据类型转化原创 2022-07-08 16:16:09 · 553 阅读 · 0 评论 -
【python库】signal
文章目录信号介绍生命周期信号处理信号表示信号分类信号通信常用信号python signal信号介绍信号signal的全称是软中断信号,是用来通知进程发生的异步事件,是在软件层次上对中断机制的一种模拟。原理上一个进程收到一个信号与CPU收到一个中断请求可以说是类似的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达。事实上进程也不必知道信号到底什么时候到达,进程之间可以相互通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号。通知进程发生了某个事原创 2021-01-26 16:00:30 · 1361 阅读 · 0 评论 -
【python库】codecs
文章目录概述谈谈我在何处用到这个模块概述codecs:这个模块定义了标准 Python 编解码器(编码器和解码器)的基类,并提供接口用来访问内部的 Python 编解码器注册表,该注册表负责管理编解码器和错误处理的查找过程。 大多数标准编解码器都属于 文本编码,它们可将文本编码为字节串,但也提供了一些编解码器可将文本编码为文本,以及字节串编码为字节串。 自定义编解码器可以在任意类型间进行编码和解码,但某些模块特性仅适用于 文本编码或将数据编码为 字节串 的编解码器。该模块定义了以下用于使用任何编解码器原创 2021-01-15 09:21:32 · 3197 阅读 · 0 评论 -
【python库】序列化和反序列化、json/pickle
文章目录什么是序列化?为什么要序列化?jsonpickle序列化模块序列化方法格式转换把python中的数据转换成str—序列化可以str转换成python的数据—反序列化什么是序列化?我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。为什么要序列化?持久保存状态需知一个软件/程序的执行就在处理一系列状态的变化,在编程语原创 2020-12-24 10:26:50 · 495 阅读 · 0 评论 -
【python库】xml、configparser
文章目录xmlconfigparserxmlxml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。xml的格式如下,就是通过<>节点来区别数据结构的:<?xml version="1.0"?><data> <country name="Liechtenstein">转载 2020-12-25 09:10:03 · 193 阅读 · 0 评论 -
【python库】inspect
python inspecttype and memberRetrieving source codeclass and functionsThe interpreter stackinspect的主要作用对是否是模块,框架,函数进行类型检查获取源码获取类或者函数的参数信息解析堆栈type and memberinspect.getmembers(object[, predicate])第二个参数通常可以根据需要调用如下16个方法;返回值为object的所有成员,以(name,va转载 2021-09-13 03:24:55 · 1046 阅读 · 1 评论 -
【python库】OS
OS模块返回当前使用操作系统返回当前工作目录删除path指定文件删除path指定目录创建path指定目录返回path的绝对路径是否为绝对路径查看路径的文件夹部分和文件名部分 返回的是元组类型将path进行组合,若其中有绝对路径,则之前的path将被删除。文件或文件夹的最后修改时间,从新纪元到访问时的秒数。文件或文件夹的最后访问时间,从新纪元到访问时的秒数。文件或文件夹的创建时间,从新纪元到访问时的秒数。查看文件大小 若是文件夹则返回0列出path目录下所有的文件和目录名返回path中的文件夹部分,结果不包原创 2020-12-12 09:22:21 · 1251 阅读 · 2 评论 -
【python库】datetime和time
文章目录timedatetimedate类time类datetime类timedelta类 时间加减类注意:新的知识点timetime模块中时间表现的格式主要有三种:timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量struct_time时间元组,共有九个元素组。format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式时间格式转化图import time# 生成时间戳time.time()# 结构原创 2020-12-21 10:04:42 · 268 阅读 · 0 评论 -
【python库】hashlib
文章目录hashlib的基本概念如何产生哈希值的三个阶段检查文件一致性(保证文件下载过程中不丢包,保证数据的完整性)对明文密码进行加密破解用户注册密码hmac模块的加密方式hashlib的基本概念什么叫hashhash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值hash值的特点是(hash值/产品有三原创 2020-12-27 10:53:18 · 291 阅读 · 0 评论 -
【python库】collections
from collections import (Counter, deque, namedtuple, defaultdict, OrderedDict)Counter'''Dict subclass for counting hashable items. Sometimes called a bag or multiset. Elements are stored as dictionary keys and their counts are stored as dict.原创 2020-12-07 19:41:07 · 2651 阅读 · 0 评论 -
【python库】logging
文章目录官方介绍概述源码部分日志教程日志相关概念日志等级日志字段信息与格式日志功能的实现logging模块总结使用logging提供的模块级别的函数记录日志简单的案例logging.basicConfig()函数说明logging模块定义的格式字符串字段使用配置的日志输出案例logging模块日志流处理流程四大组件的常用方法Logger类Handler类Formater类Filter类工作流程使用logging四大组件日志输出案例在Django中配置logging官方介绍概述这个模块为应用与库实现了灵原创 2021-01-15 11:38:50 · 632 阅读 · 1 评论 -
【python库】random
文章目录random.random()random.uniform()random.randint()random.choice(sequence)random.shuffle(x[, random])random.sample(sequence, k)random模块的功能就是生成随机数\color{red}{random模块的功能就是生成随机数}random模块的功能就是生成随机数random.random()用于生成(0,1)之间的浮点数random.random()# 0.62616411原创 2020-12-19 10:58:09 · 318 阅读 · 1 评论 -
【python库】re
文章目录常用正则表达式的符号和语法匹配模式re常用方法常用正则表达式的符号和语法一张图片了解正则元字符'.' 匹配所有字符串,除\n以外‘-’ 表示范围[0-9]'*' 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。'+' 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+'^' 匹配字符串开头‘$’ 匹配字符串结尾 re'\' 转义字符, 使后一个字符改变原来的意思, 如果字符串中有字符*需要匹配,可以\*或者字符集[*] re.findall(r'3\原创 2020-12-26 11:35:11 · 287 阅读 · 0 评论 -
【基础篇】python之类的详解(下)—实例方法、静态方法和类方法详解(包含区别和用法)
类的详解实例方法静态方法类方法属性方法实例方法实例方法也称为成员方法,是类中常用的方法,它既可以通过实例化对象调用 也可以通过 类名直接调用,下面我们看一个具体的例子。class Dog(object): def __init__(self, name): self.name = name def eat(): print("dog is eating")dog = Dog("hauhau")# 通过实例化对象调用dog.eat原创 2020-12-16 09:26:30 · 594 阅读 · 0 评论 -
【基础篇】python之类的详解(中)—封装、继承、多态,C3算法的介绍
类的详解封装继承单继承C3算法多继承事例1事例2多态封装使用封装能隐藏对象实现细节,使代码更易维护,同时因为不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。类通过将函数和变量封装在内部,实现了比函数更高一级的封装。class Person(object): def __init__(self): self.__name='a' self.age = None @property # 使用@property将一个方法name变成属性,原创 2020-12-15 10:12:49 · 1134 阅读 · 0 评论 -
【基础篇】python之类的详解(上)—面向对象、类的定义和使用、相关概念
类的详解1 面向对象概念及特征1.1 概念1.2 特征2.类的定义和使用2.1 类的定义2.2 类的使用及相关的概念在软件开发中,面向对象是我们离不开的东西,从系统设计的角度出发,总是以面向对象的方式对现实世界理解和抽象。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。这一知识点往往在面试过程中也是非常重要的一个环节,让我们一起去看看python中的类是如何实现的。1 面向对象概念及特征1.1 概原创 2020-12-14 10:09:24 · 1579 阅读 · 0 评论 -
【基础篇】11.熟悉python中函数吗
文章目录函数介绍函数定义函数的调用函数的返回值总结函数的参数参数参数的分类位置参数关键字参数混合参数总结动态接收位置参数动态接收关键字参数函数的注释名称空间函数的嵌套gloabal、nonlocalglobal 宗旨nonlocal宗旨内置函数作用域相关locals()globals()迭代器相关range()next()iter()字符串类型代码的执行eval()exec()输入和输出相关input()print()内存相关hash()id()文件操作相关open()帮助help()调用相关callabl原创 2020-12-05 09:13:38 · 3725 阅读 · 0 评论 -
【基础篇】10.python常用数据类型—集合
集合(set)集合与元组和列表相似都用于做容器,在内部可以放一些子元素,但集合有三特殊特点: 子元素不重复 、 子元素必须可哈希、无序.提示:目前可哈希的数据类型 int/str/tuple;不可哈希的类型tuple/list/set 。1 集合的定义v1 = {1,2,99,18}v2 = {"aa","cc","bb","Ee"}v3 = {1,True,"world",(11,22,33)}集合与字典虽然都是用{}括号,但字典内部是键值对,而集合内部直接是值。2 常用方法添加元原创 2020-12-05 09:05:18 · 2759 阅读 · 0 评论 -
【基础篇】09.python常用数据类型—字典
字典(dict)字典也可以当做是个容器,在内部可以存放数据。相比较于元组和列表,字典的元素必须是 键值对。注意:在Python3.6+字典就是有序了,之前的字典都是无序。1. 字典定义info = {"age":12, "status":True, "name":"11","hobby":['篮球','足球']}# 例如: "age":12 称为一个键值对。department_dict = { "IT部门":["11","22"], "销售部":["张三","刘能原创 2020-12-04 09:00:57 · 2961 阅读 · 0 评论 -
【基础篇】08.python常用数据类型—元组
文章目录元祖(tuple)1 元组的定义2 常见操作3 转换4 其他5 嵌套元祖(tuple)元组也是一个容器,里面可以存放各种数据(和列表相似),但他有一个特殊的特点:元组的儿子元素不允许添加、不允许修改、不允许删除,只能读。一般用于存储一些在程序中不应该被修改的一系列值。1 元组的定义v1 = (11,22,33,)v2 = ("11","22",)v3 = ("44",)注意:建议在元组的最后多加一个逗号,用于标识他是一个元组。# 面试题1. 比较值 v1 = (1) 和 v2原创 2020-12-04 08:52:25 · 2882 阅读 · 0 评论 -
【基础篇】07.python常用数据类型—列表(很重要)
文章目录列表(list)1.列表的定义2 .常用方法(功能)3. 转换为列表4. 其他5. 嵌套列表(list)可以把列表当做是一个有序的容器,在里面可以放很多的元素。1.列表的定义user_list = ["李四","张三","王五"]number_list = [98,88,666,12,-1]data_list = [1,True,"234234"]2 .常用方法(功能)为了方便我们操作列表,Python中对所有列表提供了一些的功能。追加,在原列表中尾部追加值。data_li原创 2020-12-03 08:44:00 · 2809 阅读 · 0 评论 -
【基础篇】06.python常用数据类型—字符串
文章目录字符串(str)1 字符串的表示2 常见方法3 转换为字符串4 其他字符串(str)字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。1 字符串的表示v1 = "包治百病"v2 = '包治百病'v3 = "包'治百病"v4 = '包"治百病'v5 = """吵架都是我的错,因为大家打不过。"""# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。2 常见方法Python中给属于字符串的所有的值都提供了一些功能(方法),从而可以原创 2020-12-03 08:33:54 · 2885 阅读 · 0 评论