
python
文章平均质量分 80
茜茜是帅哥
忠于你的梦想,别管它发不发光。
展开
-
Python中类创建和实例化过程
定义一个类时,使用声明或者默认的元类对该类进行创建,对元类求type运算,得到父元类(该类声明的元类的父元类),调用父元类的__call__函数,在父元类的__call__函数中, 调用该类声明的元类的__new__函数来创建对象(该函数需要返回一个对象(指类)实例),然后再调用该元类的__init__初始化该对象(此处对象是指类,因为是元类创建的对象),最终返回该类。=type, 定义类时就是创建类,此时会调用元类的__call__,如果元类有继承,子元类定义时执行的是父元类的__call__。原创 2024-02-21 15:25:25 · 1426 阅读 · 0 评论 -
Python中 ‘==‘ 与‘is‘的区别
Python为了优化速度,会把 [-5, 256] 之间的数据提前存放在小整数池中,如果程序使用到小整数池中的数据,是不会开辟新的内存空间去创建,而是指向对象池中的同一份数据,也就是说有N个变量等于1的话,那么这N个变量的内存地址都会指向小整数池中的1位置。简单理解有点像缓存的意思,当需要使用相同的字符串时(变量赋值),直接从缓存中拿出来用而不是重新创建,这样可以避免频繁的创建和销毁,提升效率,节约内存。pycharm中,每次运行是所有代码都加载到内存中,属于一个整体,并不存在这个现象。原创 2024-02-18 14:07:28 · 1117 阅读 · 0 评论 -
Python丨tkinter开发常用的29种功能用法(建议码住)
为按钮、菜单等组件绑定回调函数,用户操作该组件时会触发相应的函数执行。运行后,选择不同的参数,回传到了spinbox组件。验证程序能够运行,且可以显示在没有选择前、选择后。经过验证,程序可以运行,蓝色的图形会运动到右下角。当点击蓝色方块时,蓝色方块会移动。程序测试好像不成功,没有找到原因。原创 2024-02-08 14:30:00 · 942 阅读 · 0 评论 -
用Python找出了删除自己微信的所有人并将他们自动化删除了
下载一个驱动精灵,安装启动之后点击驱动管理,之后安装相应驱动即可解决。原创 2024-02-04 15:00:00 · 2016 阅读 · 0 评论 -
Python实现人脸识别,进行视频跟踪打码,对特定场景打上马赛克
今天我们来实现用Python自动对视频打马赛克。为 output.mp4 处理好的视频添加声音。话不多少,我们直接开始操作!原创 2024-02-02 14:30:00 · 681 阅读 · 0 评论 -
Python基础小知识:format函数用法
format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型。同一个参数可以填充多次,这个是format比%先进的地方。4.官方推荐用的方式,%方式将会在后面的版本被淘汰。也可以不输入数字,这样也会按顺序来填充。(1)通过位置来填充字符串。最后,宣传一下呀~👇👇👇。原创 2024-02-01 14:00:00 · 498 阅读 · 0 评论 -
Python如何递归删除空文件夹
这样由内到外判断当前目录树下是否有文件和文件夹,如果都没有则意味着当前目录树为空文件夹,os.rmdir删除即可。需要用os.listdir判断当前文件夹是否为空,因为dirs和files还是刚进入当前文件夹root时得到的。Python中的os.walk提供了一种从内到外的遍历目录树的方法(设置topdown=False),原创 2024-01-31 13:30:00 · 390 阅读 · 0 评论 -
Python数据库模块(sqlite3,SQLite3)
cursor.executemany(sql,seq_of_parameters) 对 seq_of_parameters 中的所有参数或映射执行一个 SQL 命令connection.executemany(sql,seq_of_parameters) 快捷方式;connection.execute(sql) 该例程是上面执行的由光标(cursor)对象提供的方法的快捷方式,它通过调用光标(cursor)方法创建了一个中间的光标对象,然后通过给定的参数调用光标的 execute 方法。原创 2024-01-31 14:45:00 · 976 阅读 · 0 评论 -
Python中pathlib 模块的用法
本文给大家介绍了 Python 的 pathlib 模块,为 Python 工程师对该模块的使用提供了支撑,让大家了解如何使用 pathlib 模块读写文件、操纵文件路径和基础文件系统,统计目录下的文件类型以及查找匹配目录下某一类型文件等。原创 2024-01-30 14:33:42 · 596 阅读 · 0 评论 -
python使用迭代生成器yield减少内存占用的方法
本文介绍了python的迭代器yield,其实关于yield,我们可以简单的将其理解为单个元素的return。这样不仅就初步理解了yield的使用语法,也能够大概了解到yield的优势,也就是在计算过程中每次只占用一个元素的内存,而不需要一直存储大量的元素在内存中。原创 2024-01-28 13:00:00 · 1233 阅读 · 0 评论 -
Python中lambda表达式的用法
本文主要展示了一些lambda表达式的使用示例,通过这些示例,我们可以了解到lambda表达式的常用语法以及使用的场景。在一般情况下,其最大的意义还是简化了python中函数的定义方式,在可读性上远不如def所定义的函数。原创 2024-01-27 15:04:08 · 512 阅读 · 0 评论 -
python基础教程:属性查询顺序,数据描述符
说了一堆有的没的,其实描述符就是一个特殊的实现,当你的一个对象的属性是描述符时,设置/赋值/读取 这个属性,都会触发这个描述符内部相应实现的方法。所以,结合上面的 docstring,我们可以看出,数据描述符应该是给实例使用的,类使用它用处不大,至少没法调用它的。方法时,此时数据描述符优先级高,所以实例属性 self.a 其实就是对类属性 a 的赋值,会调用数据描述符的。描述符的用处就是,当一个对象的某个属性是一个描述符时,你访问这个描述符类型的属性,就会调用这个描述符的方法。原创 2024-01-25 16:11:56 · 968 阅读 · 0 评论 -
python中那些双下划线开头得函数和变量
如果要创建自己的类,且对象之间的比较有意义,可以使用下面的特殊方法来实现比较。方法,在 每次引用属性或方法名称时 Python 都调用它(特殊方法名称除外,因为那样将会导致讨厌的无限循环)。因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。要重建序列化对象,Python 需要创建一个和被序列化的对象看起来一样的新对象,然后设置新对象的所有属性。方法允许将 color 列为可用属性,对于想使用你的类但却不想深入其内部的人来说,该方法非常有益。原创 2024-01-22 16:23:27 · 1268 阅读 · 0 评论 -
Python通过函数名调用函数的几种场景
除了执行系统命令外,我们有时还需要动态地执行一些python代码,有经验的朋友就会知道可以使用内置函数eval实现这一需求,如。但如果要动态执行一个函数,讲的资料就会少一点,这次就要看这个需求该如何实现。原创 2024-01-20 15:05:54 · 624 阅读 · 0 评论 -
在Python中将字典转为成员变量的方法
在python中直接支持了__dict__.update()这样的方法来操作,避免了对locals()、vars()和eval()函数的使用,...:Out[6]: 1Out[7]: 3如果给定一个字典,比如一般从json文件或者npz文件中加载出来的数据都是字典的数据结构,如果我们希望把这个字典赋值给一个类,且使得字典的key和value分别作为类的成员变量名和成员变量值,那么该如何实现呢?原创 2024-01-18 14:58:41 · 1032 阅读 · 0 评论 -
Python中容易被忽略的内置类型
不可变集合(frozenset)与普通的set一样,只不过它的元素是不可变的,因此诸如add,remove,update等可以添加/删除/改变集合内元素的方法是不存在的,换句话说一旦frozenset建立后你将不再可能更改集合内的元素。memoryview有个称为“元素”的概念,也就是对象规定的最小的内存单元,比如bytes和bytearray的最小内存单元就是一个byte,具体取决于对象的实现。这种形式更简单明了。Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们。原创 2024-01-16 14:13:06 · 895 阅读 · 0 评论 -
Python实现简易版选课系统
# 创建随机产生3个[0:5]不重复的数字lst=[]s=set(lst)return lst。原创 2024-01-12 15:43:03 · 505 阅读 · 0 评论 -
Python调用Shell命令 (python, shell 混合编程)
可以看出,popen方法通过p.read()获取终端输出,而且popen需要关闭close().当执行成功时,close()不返回任何值,失败时,close()返回系统返回值. 可见它获取返回值的方式和os.system不同。例如,在Python安装完成之后都会存在有交互式的编程环境,那么本次将通过程序调用交互式编程环境直接操作python命令行,在python命令行中直接输入程序。返回值是依赖于系统的,直接返回系统的调用返回值,所以windows和linux是不一样的。直接调用命令,返回值即是系统返回。原创 2024-01-10 14:54:39 · 1150 阅读 · 0 评论 -
【python基础教程】print输出函数和range()函数的正确使用方式
格式化输出有两种方式:一种是使用格式化符号%,一种是使用字符串格式化函数str.format()。==>这里的str代表的是字符串,所以一般输出format前面的函数要用""或’'圈起来。print作用是将objects的内容输出到file中,objects中的各个参数以sep为间隔,以end为结尾。有四个关键字参数(sep end file flush),这四个关键字参数都有默认值。flush的作用是是否即时输出,默认值为False,即执行完后输出。原创 2024-01-09 16:41:29 · 555 阅读 · 0 评论 -
Python中通过字符串访问与修改局部变量
Python本身是一门比较灵活便捷的编程语言,但是便捷往往有可能伴随着一些风险,比如exec和eval等内置函数的实现,有可能导致sandbox escaping的问题。而有时候我们又需要一些批量化的操作,比如批量化的创建或者修改局部、全局或者是成员变量,这样就需要我们首先要把所有的变量名存成字符串,在需要的时候再作为变量名去调用。在这篇文章中,我们介绍了一系列非exec和eval的操作(并不是说没有风险,也引用了ctype和sys定义的数据帧),来查看和定义、修改所需的各种变量。原创 2024-01-06 14:34:45 · 1017 阅读 · 0 评论 -
Python random模块(获取随机数)常用方法和使用例子
random.random()用于生成一个0到1的随机符点数: 0 b,则生成的随机数n: a原创 2024-01-04 15:38:30 · 1217 阅读 · 0 评论 -
Python中常用网络编程模块
3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。原创 2023-12-20 15:10:42 · 1027 阅读 · 0 评论 -
Python中itertools 模块的用法
本文总结了 itertools 模块的常规操作,学习并掌握这些极为便利的操作非常有助于提高自己的编码效率。原创 2023-12-18 15:54:37 · 908 阅读 · 0 评论 -
什么是网络爬虫?有什么用?怎么爬?
随着大数据时代的来临,网络爬虫在互联网中的地位将越来越重要。互联网中的数据是海量的,如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是一个重要的问题,而爬虫技术就是为了解决这些问题而生的。如果只是做搜索引擎,那么感兴趣的信息就是互联网中尽可能多的高质量网页;如果要获取某一垂直领域的数据或者有明确的检索需求,那么感兴趣的信息就是根据我们的检索和需求所定位的这些信息,此时,需要过滤掉一些无用信息。前者我们称为通用网络爬虫,后者我们称为聚焦网络爬虫。原创 2023-12-04 16:07:52 · 1850 阅读 · 1 评论 -
python带你一步步从单章小说下载到GUI界面制作
response.text --> 获取响应文本数据 re.findall(‘什么数据’, ‘什么地方’) --> 从什么地方, 去找什么数据。import requests --> 数据请求模块 第三方模块, 需要安装。import parsel --> 数据解析模块 第三方模块, 需要安装。import re --> 正则表达式模块 内置模块, 不需要安装。import os --> 文件操作模块 内置模块, 不需要安装。原创 2023-11-30 15:20:23 · 863 阅读 · 0 评论 -
python教程:正常shell与反弹shell
1.把服务端打包成exe文件,然后在win7运行打包好的exe文件,python打包成exe文件这里推荐pyinstaller模块(需要安装,安装方法不会的百度)打包成exe文件时最好打包成文件夹,如何打包成单个exe文件,在win7中运行可能会出题。#只要服务端一直运行,如果把客户端的程序加入到开机自启,这样客户端已开启就被连接到服务端。反弹shell的好处就是:一旦被攻击端开机,立即连接上攻击端(需要攻击端一直运行)反弹shell,攻击端是服务端,被攻击端是客户端。原创 2023-11-25 14:55:00 · 855 阅读 · 0 评论 -
Python基础教程: sorted 函数
比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。排序规则,reverse = True 降序 , reverse = False 升序(默认)。sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。原创 2023-11-22 15:10:07 · 704 阅读 · 0 评论 -
python学习:break用法详解
无论是while循环还是for循环,只要执行break语句,就会直接结束当前正在执行的循环体。对于嵌套的循环结构来说,break语句只会终止所在循环体的执行,而不会作用于所有的循环体。以上代码,当循环遍历到逗号时,程序执行break语句,直接终止了当前的遍历,跳出循环体。在执行while循环或者for循环时,只要循环条件满足,程序会一直执行循环体。continue语句:跳过执行本次循环体中剩余得代码,转而执行下一次的循环。break语句可以立即终止当前循环的执行,跳出当前所在的循环结构。原创 2023-11-18 19:10:14 · 239 阅读 · 0 评论 -
python基础教程之有序字典
如果有序字典中的元素一开始就定义好了,后面没有插入元素这一动作,那么遍历有序字典,其输出结果为空,因为缺少了有序插入这一条件,所以此时有序字典就失去了作用,所以有序字典一般用于动态添加并需要按添加顺序输出的时候。上面两个例子之所以字典中插入元素,而不是一开始就将字典中的元素定义好,是因为有序字典的作用只是记住元素插入顺序并按顺序输出。有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。由上面的结果可以看出对普通字典进行遍历,输出结果是无序的。原创 2023-11-17 14:49:11 · 135 阅读 · 0 评论 -
Python学习:同步异步阻塞与非阻塞
在了解其他概念之前,我们首先要了解进程的几个状态。就绪,运行和阻塞。就绪(Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。执行/运行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。原创 2023-11-14 14:01:23 · 396 阅读 · 0 评论 -
Python 使用OS模块调用 cmd
如果将缓冲值设置为大于1的整数则以设置的缓冲大小执行缓冲操作。os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的执行结果。如果mode为’r’,可以使用此函数的返回值调用read()来获取command命令的执行结果。也是在shell中执行command命令,但是返回的结果却是一个文件对象,可以对其读写。mode – 模式权限,读(‘r’)或者写(‘w’),默认为读(‘r’)返回值是一个文件对象,可以读或者写(由mode决定,默认是’r’)。原创 2023-11-12 13:15:00 · 712 阅读 · 0 评论 -
Python基础教程:类--继承和方法的重写
继承就是让类与类之间产生父子关系,子类可以拥有父类的静态属性和方法继承就是可以获取到另一个类中的静态属性和普通方法(并非所有成员)在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类定义一个 Student 的类,创建 eat()方 法,规定学生去食堂吃饭,定义一个 Boss 类创建 eat()方法,规定 Boss 去酒店吃。原创 2023-11-11 15:03:12 · 216 阅读 · 0 评论 -
Python中return和yield的区别
他们的主要区别是yiled要迭代到哪个元素那个元素才即时地生成,而return要用一个中间变量result_list保存返回值,当result_list的长度很长且每个组成元素内容很大时将会耗费比较大的内存,此时yield相对return才有优势。如果要返回的数据是通过for等循环生成的迭代器类型数据(如列表、元组),return只能在循环外部一次性地返回,yeild则可以在循环内部逐个元素返回。从上边两个小节可以看到,虽然return和yield两者执行的顺序有区别,但整个要做的事情是一样的,原创 2023-11-10 14:57:30 · 250 阅读 · 0 评论 -
python 删除特定字符所在行
删除特定行(创建新文件,把不含字符的那些行写进新文件中,重命名文件成原来的文件名称)原创 2023-11-09 15:50:19 · 272 阅读 · 0 评论 -
用Python实现链式调用
当我们不停调用.filter()方法的时候,Django会把这些查询条件全部缓存起来,只有当我们需要获取结果,或者查询满足条件的数据有多少条时,它才会真正地连接数据库去查询。在这种写法里面,query对象有一个filter方法,这个方法的返回数据还可以继续调用filter方法,可以这样无限制地调用下去。这是因为在没有显式写return语句的时候,方法会返回None,而None对象是没有所谓的filter方法的。这个时候,我们就要看看我们在定义类方法的时候,总会写的的第一个参数self了。原创 2023-11-07 15:17:48 · 336 阅读 · 0 评论 -
Python找出列表中出现次数最多的元素三种方式
这里要注意:不能为了图方便进行collection_words * 2,因为类型不同,2为int,故不能进行运算。他可以直接帮我们计数,然后再帮我们排序好。也就是用Counter(words)之后,这个类型是可以相加减的,只支持相加减。躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。我们要查找的这个键不在字典中,我们先将它置为0,然后再加1,故这个setdefault函数不生效,然后我们再把次数加1。再查找到这个键的时候,这个时候它是存在这个字典里面的原创 2023-11-04 16:50:40 · 1264 阅读 · 0 评论 -
Python必学知识:变量的声明
等号(=)左侧是变量名,右侧是变量值,赋完值后,Python编译器会自动识别变量的类型。例如,value315是一个合法的变量名,而315value是错误的变量名。下面的代码声明了多个变量,这些变量的数据类型包括整数、字符串、布尔和浮点数。变量(variable)是Python语言中一个非常重要的概念。躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。类似于“张三”、“李四”、“王二麻子”一样的人名,便于记忆。变量的主要作用就是为Python程序中的某个值起一个名字。最后输出这些变量的值。原创 2023-11-02 14:45:05 · 261 阅读 · 0 评论 -
【python教程】 print()函数用法总结
在 Python 3 中接触的第一个很大的差异就是缩进是作为语法的一部分,这和C++等其他语言确实很不一样,所以要小心 ,其中python3和python2中print的用法有很多不同,python3中需要使用括号。缩进要使用4个空格(这不是必须的,但你最好这么做),缩进表示一个代码块的开始,非缩进表示一个代码的结束。math.floor(number),返回数的下舍整数,返回值的类型为浮点数。math.ceil(number),返回数的上入整数,返回值的类型为浮点数。原创 2023-10-31 15:59:25 · 303 阅读 · 0 评论 -
Python必备知识:数据类型 之tuple元组
元组是一个和列表和相似的数据类型,也是一个有序序列两者拥有着基本相同的特性,但是也有很多不同的地方(123, ) 表示的是一个元组,元组中包含一个整数 123(123) 表示的是一个带括号的表达式,整数 123 嵌入括号中因为元组是不可变对象,所以元组一般适合用来存储不变的数据。原创 2023-10-26 13:15:00 · 99 阅读 · 0 评论 -
对python中切片详解
0:1:n] 如:list1[0:3;1] 从0开始到3每次增加1截取,不包含索引结束位置。注意:切片结果不包含结束索引,即不包含最后一位,-1代表最后一个位置索引。躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。默认从起始位置索引,每次增加1截取,结束位置索引为3。[:] 如:list2=list1[:] 全部截取。从0开始到结束,每次增加1,截取不包含索引结束位置。Start:起始索引,从0开始,-1表示结束。反向取值,每次增加1截取,不包含索引结束位置。原创 2023-10-25 14:00:00 · 399 阅读 · 0 评论