
1.python进阶
文章平均质量分 59
python进阶
小Pawn爷
Python菜鸟
展开
-
Python的位运算
计算机在处理负数的位运算时必须使用补码,因为如果用原码进行运,符号位会导致运算规则变得复杂且不符合逻辑,而补码运算可以将减法转化为加法,使得计算机的运算电路设计更加简单高效。在 Python 位运算中所有的数都是基于补码进行运算的,只是正数的补码和原码形式相同,给人一种用原码运算的错觉。:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反):最高位为符号位,0表示正数,1表示负数.在位运算中符号位也参与运算。:正数的补码就是原码,负数的补码是反码+1。原创 2024-10-27 14:28:07 · 293 阅读 · 1 评论 -
python位运算
计算机在处理负数的位运算时必须使用补码,因为如果用原码进行运,符号位会导致运算规则变得复杂且不符合逻辑,而补码运算可以将减法转化为加法,使得计算机的运算电路设计更加简单高效。在 Python 位运算中所有的数都是基于补码进行运算的,只是正数的补码和原码形式相同,给人一种用原码运算的错觉。:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反):最高位为符号位,0表示正数,1表示负数.在位运算中符号位也参与运算。:正数的补码就是原码,负数的补码是反码+1。原创 2024-10-27 14:03:32 · 187 阅读 · 0 评论 -
python总结
函数参数传递的是实际对象的内存地址,如果参数引用的是可变对象,在函数内部修改后,就算没有把修改后的值返回回去,外面的值其实也改变了。原创 2024-03-10 11:54:19 · 180 阅读 · 0 评论 -
python的元类
元类(metaclass)就是创建类的模板type是Python在背后用来创建所有类的元类 连type自己也是由type自己创建的metaclass: 超越变形特性 , 类是元类的实例,所以在创建一个普通类时,其实会走元类的__new__, 对普通类进行实例化时,实际是对一个元类的实例(也就是普通类)进行直接调用,所以会走进元类的__call__原创 2023-04-01 22:20:53 · 306 阅读 · 0 评论 -
Python的GIL全局解释锁
CPython 中还有另一个机制,叫做 check_interval, CPython 解释器会去轮询检查线程 GIL 的锁住情况.每隔一段时间,Python 解释器就会强制当前线程去释放 GIL,这样别的线程才能有执行的机会。多个线程执行时,每一个线程在开始执行时,都会锁住 GIL,以阻止别的线程执行,同样的,每一个线程执行完一段后,会释放 GIL,以允许别的线程开始利用资源。因为 CPython 大量使用 C 语言库,但大部分C语言库都不是原生线程安全的(线程安全会降低性能和增加复杂度)原创 2023-03-26 10:11:05 · 300 阅读 · 0 评论 -
python的多继承
当一个类存在继承,且已经在子类中重写相应的变量,改变父类的变量不会对子类有影响。方法二:super(本类名,对象).方法名()方法一:父类名.方法名(对象)原创 2023-03-25 22:18:13 · 519 阅读 · 0 评论 -
python的面向对象
(Python 中非常有名鸭子类型:一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子)当一个类存在继承,且已经在子类中重写相应的变量,改变父类的变量不会对子类有影响。继承:继承使的子类不仅拥有自己的属性和方法,还使用父类的属性和方法。抽象:抽象使得不同的子类和相同的方法和属性形成父类。方法二:super(本类名,对象).方法名()封装:使的代码更加模块化,代码复用度高。多态:多态使得相同的方法具有不同的功能。面向对象的四要素,以及他们之间的关系。方法一:父类名.方法名(对象)原创 2023-03-25 21:37:54 · 622 阅读 · 0 评论 -
python的迭代器
1.元组推导式是生成器2.使用yield的函数是生成器。原创 2023-03-18 19:29:21 · 154 阅读 · 0 评论 -
python的上下文管理器
循环打开1000万个文件,且用完之后不关闭,会照成资源泄露,并报如下错。2.创建临时目录,使用完后再删除临时目录。2.使用上下文改善异常处理。1.实现文件的打开和关闭。1.实现文件的打开和关闭。原创 2023-03-18 15:47:45 · 210 阅读 · 0 评论 -
python的Pandas
df.loc[, ] 如列表达式部分不传,将返回所有列,Series仅支持行表达式进行索引的部分loc操作通过索引和列的条件筛选出数据.如果仅返回一条数据,则类型为Series。数据透视表,顾名思义,是指它有“透视”数据的能力,可以找出大量复杂无关的数据的内在关系,将数据转化为有意义、有价值的信息,从而看到它所代表的事物的规律和本质。at类似于locdf.at[,]如果是一个Series,可以直接值入索引取到该索引的值iat和iloc一样,仅支持数字索引。原创 2022-12-10 17:16:56 · 1348 阅读 · 0 评论 -
python三高问题分析
模拟高内存场景:利用两张表df1和df2以第一列做为连接键进行外关联,每张表中作为连接键的列相同的数据越是多,cprofile:分析哪一个功能模块效率低,延迟高,占用资源多。在进行外关联时形成新表数据就会成指数积增长。显示所有包含其他使用者的进程。1.top命令查看cpu使用情况。5.查询某个目录下的具体文本。测试linux的性能。原创 2022-11-28 08:54:55 · 465 阅读 · 0 评论 -
Python的加密
PKI(Public Key Infrastructure ) 简称公钥基础设施 ,它是一个在数字世界里用来认证用户或者设备的技术,由一些受信任的机构签发一个特殊的“文件”来证明一个秘钥属于特定的用户和设备,用户和设备从而可以使用该认证过的秘钥来代表自己的身份,进行消息的传递。•接收方通过秘钥和消息计算出MAC值,如果计算的MAC和接收到的MAC值相同,则可以说明消息违背第三方篡改。•消息发送方把未加密的消息,连同消息+秘钥计算出的MAC值发送给消息接收方。•通过公钥对签名消息进行解密,取得哈希值H2。原创 2022-09-20 08:34:25 · 1933 阅读 · 0 评论 -
Python项目pre-commit hook
首先 pre-commit 做不到什么 并不能提高你的代码质量 也不能提高你的逻辑思维能力 pre-commit 能做什么 帮助你格式化代码 减少再代码格式上的信仰冲突 节省更多的时间,讨论逻辑…pre-commit优缺点缺点并不能提高你的代码质量也不能提高你的逻辑思维能力优点帮助你格式化代码减少再代码格式上的信仰冲突节省更多的时间,讨论逻辑,优化算法。安装pip install pre-commitpip freeze | grep pre-commit >&g.原创 2022-04-09 21:48:43 · 1307 阅读 · 0 评论 -
Python在多用户环境下实现安全写入
import osimport stat# 指定文件操作模式# 只写的方式 |创建并打开一个新文件 | 打开一个文件并截断它的长度为零(必须有写的权限)清空原有文件的内容flags = os.O_WRONLY | os.O_CREAT | os.O_TRUNC# 指定文件的权限# 对于拥有者写的权限 | 对于拥有者写的权限 | 对于拥有者执行的权限mode = stat.S_IWUSR | stat.S_IRUSR | stat.S_IXUSRwith os.fdopen(os.ope原创 2022-04-03 20:49:31 · 1013 阅读 · 0 评论 -
Python多任务
1.基本概念定义含义并发:concurrency,同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行并行parallel,同一时刻,有多条指令在多个处理器上同时执行,并行必须要依赖于多个处理器阻塞程序未得到所需计算资源时被挂起的状态非阻塞程序在等待某操作过程中,自身不被阻塞,可以继续处理其他的事情同步不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,我们称这些程序单元是同步执行的异步为完成某个任务,不同程序原创 2022-01-16 23:02:48 · 402 阅读 · 0 评论 -
Python多进程
1.常用的线程方法# 启动子进程t.start()# 进程等待,主进程等待子进程运行完毕之后才退出t.join()# 判断进程是否在执行状态,在执行返回True,否则返回Falset.is_alive()# 守护进程,随主进程退出而退出,默认为Falset.daemon = True# 设置主进程名t.name = "My_Process"#终止子进程p.terminate()p.join()2.用函数创建多进程import timeimport multipro原创 2022-01-16 18:48:18 · 704 阅读 · 0 评论 -
Python多线程
1.基本概念定义含义并发:concurrency,同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行并行parallel,同一时刻,有多条指令在多个处理器上同时执行,并行必须要依赖于多个处理器阻塞程序未得到所需计算资源时被挂起的状态非阻塞程序在等待某操作过程中,自身不被阻塞,可以继续处理其他的事情同步不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,我们称这些程序单元是同步执行的异步为完成某个任务,不同程序原创 2022-01-16 16:02:57 · 520 阅读 · 0 评论 -
Python中的aiohttp
文章目录1.定义2.基本使用3.请求类型4.相应字段5.超时设置6.并发限制7.实际应用1.定义aiohttp 是一个基于 asyncio 的异步 HTTP 网络模块,它既提供了服务端,又提供了客户端2.基本使用import aiohttpimport asyncioasync def fetch(session, url): # 声明一个支持异步的上下文管理器 async with session.get(url) as response: # respon原创 2022-01-15 16:11:15 · 5130 阅读 · 3 评论 -
Python异步asynico
文章目录1.定义2.创建协程3.常见概念4.基本使用5.绑定回调函数6.协程中的并发7.协程中的嵌套8.gather和wait的区别9.动态添加协程10.redis实现动态任务添加1.定义asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持2.创建协程from collections.abc import Coroutineasync def hello(name): print('Hello,', name)if __name__ == '__main_原创 2022-01-15 14:02:57 · 1025 阅读 · 0 评论 -
Python协程
1.基本概念1.阻塞/非阻塞概念定义阻塞程序未得到计算资源时被挂起的状态,在此期间程序无法处理其他事情非阻塞程序未得到计算资源时被挂起的状态,在此期间程序任然可以处理其他事情2.同步/异步概念定义场景同步不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,我们称这些程序单元是同步执行的购物系统中更新商品库存,用行锁作为通信信号异步不同程序单元之间过程中无需通信协调,也能完成任务的方式,不相关的程序单元之间可以是异步原创 2022-01-13 08:22:39 · 2904 阅读 · 0 评论 -
python生成器
文章目录1.定义2.目的3.如何创建生成器4.生成器的使用5.生成器的状态6.向生成器发送消息7.yield from1.拼接可迭代对象2.生成器的嵌套1.定义可以像迭代器那样用for循环来获取元素的函数2.目的实现延时计算,缓解大量内存下内存消耗过猛的问题3.如何创建生成器方法一:元祖推导式#只有元祖推导式才是生成器(i for i in range(5))方法二:使用yield当一个函数运行到 yield 后,函数的运行会暂停,并且会把 yield 后的值返回出去。若 yiel原创 2022-01-12 22:28:35 · 378 阅读 · 0 评论 -
Request
requestGET参数名含义params请求参数header请求头timeout超时时间cookiescookie值verify=Falsessl证书验证auth身份认证proxies代理POST参数名含义data请求体files请求文件jason请求jsonResponse参数名含义r.content二进制内容r.jsonjson数据r.te原创 2021-12-13 07:21:52 · 94 阅读 · 0 评论 -
Python元类
1.基础使用# 准备一个基类(父类)class BaseClass: def talk(self): print("i am people")# 准备一个方法def say(self): print("hello")# 使用type来创建User类# 参数1: 类的名称,若不指定,也要传入空字符串# 参数2: 父类,注意以tuple的形式传入,若没有父类也要传入空tuple(),默认继承object# 参数3: 绑定的方法或属性,注意以dict的形式传原创 2021-09-15 22:44:04 · 79 阅读 · 0 评论 -
Python魔术方法
魔法属性无论人或事物往往都有不按套路出牌的情况,Python的类属性也是如此,存在着一些具有特殊含义的属性,详情如下:1. doc表示类的描述信息class Foo: """ 描述类信息,这是用于看片的神奇 """ def func(self): passprint(Foo.__doc__)#输出:类的描述信息2. module 和 classmodule 表示当前操作的对象在那个模块class 表示当前操作的对象的类是什么test.pycl原创 2021-09-14 08:35:59 · 164 阅读 · 0 评论 -
Python多线程和多进程
1.基本概念定义含义并发concurrency,同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行并行parallel,同一时刻,有多条指令在多个处理器上同时执行,并行必须要依赖于多个处理器阻塞程序未得到所需计算资源时被挂起的状态非阻塞程序在等待某操作过程中,自身不被阻塞,可以继续处理其他的事情同步不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,我们称这些程序单元是同步执行的异步为完成某个任务,不同程序单原创 2021-08-19 08:59:29 · 167 阅读 · 0 评论 -
Python重写父类的三种方法
class Aniaml(object) def eat(self): print(''"动物吃东西")class Cat(Animal): def eat(self): print("猫吃鱼") #格式一:父类名.方法名(对象) Animal.eat(self) #格式二:super(本类名,对象).方法名() super(Cat,self).e...原创 2019-09-19 11:06:07 · 6292 阅读 · 3 评论 -
python安全加密
规则1.禁止使用私有算法和弱加密算法(比如DES和MD5)2.使用安全随机数secrets.SystemRandom3.基于哈希算法的口令安全存储必须加入盐值(salt)Hmac1.背景通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值,例如,判断用户口令是否正确,我们用保存在数据库中的password_sha256对比计算sha256(password)的结果,如果一致,用户输入的口令就是正确的2.存在的问题黑客可以通过彩虹表根据哈希值反推原始口令3.解决办法计算哈原创 2021-08-14 18:00:17 · 973 阅读 · 0 评论 -
python垃圾回收
1.引用计数当这个对象的引用计数(指针数)为 0 的时候,说明这个对象永不可达,自然它也就成为了垃圾,需要被回收引用计数为0是垃圾回收的充分非必要条件,因为循环引用需要通过不可达判定,来确定是否可以回收查看内存占用import osimport psutil# 显示当前 python 程序占用的内存大小def show_memory_info(hint): pid = os.getpid() p = psutil.Process(pid) info = p.m原创 2021-07-19 08:40:32 · 395 阅读 · 0 评论 -
python装饰器
闭包"""闭包: 在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包"""def counter(start=0): def incr(): nonlocal start start += 1 return start return incrc1 = counter(5...原创 2019-08-20 11:31:09 · 135 阅读 · 0 评论 -
python深拷贝浅拷贝
3.对于可变对象存在对自身的循环引用,深拷贝也不会StackOverflow,因为深拷贝时会维护一个字典,记录已拷贝对象和id,如果id存在直接返回。(is的操作符无法重载,只是简单地获取id进行比较,而==操作符则会递归地遍历对象的所有值),被赋值的变量与赋值的变量id相等。2.浅拷贝对象对于可变对象类型,只对顶层进行拷贝,如果有多层中有可变对象类型则只是引用,及里面的元素是原对象中子对象的引用。1.对于可变对象的深拷贝,是对一个对象所有层次的递归拷贝。2.对于完全不可变对象类型,不会拷贝仅仅只会指向。原创 2019-04-18 19:35:29 · 206 阅读 · 1 评论