![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 79
李元静
专注移动开发10年,对Android、鸿蒙、Python以及Flutter均有涉猎。最近更新Python爬虫与鸿蒙专栏,著有《Flutter App开发从入门到实战》一书,感兴趣的读者加微极客学编程,实时掌握博主的更新动态。
展开
-
Python:运营自媒体,如何修改图片的MD5值
在我们运营自媒体的时候,或多或少会用到别人的图片。但是某些自媒体平台会判断图片的MD5,如果MD5相同,会认为你抄袭,默认会降低你的权重,导致流量很低。所以,如何修改图片的MD5值,往往成为了运营自媒体关键技术之一。当然,有的人肯定会说,通过PS换个格式保存一下图片自然就改变了MD5。原创 2022-03-07 19:14:20 · 5711 阅读 · 1 评论 -
Python数据结构与算法(20)---插值查找
目录插值查找插值查找公式计算实战:插值查找插值查找插值查找,又名Interpolation Search,是基于有序数列的元素查找,在采用二分查找算法的思想上进行了改进。其在最小值与最大值范围内,用公式确定中间分割比较点mid。这里,我们具体的插值公式如下所示:其时间复杂度为:O(loglogN)。插值查找公式计算假设,我们的数列还是[1,3,5,7,9,11,13],我们还是需要查找数值13。那么,根据上面的公式(left=0,right=6),我们计算得出mid=(13-1)*6/(13-原创 2021-09-27 18:04:28 · 1689 阅读 · 4 评论 -
Python数据结构与算法(19)---二分查找
目录二分查找图解二分查找实战:二分查找二分查找二分查找又名Binary Search,其采用折半的查找方式,实现对有序元素的快速查找。相信看到上面二分查找的定义,读者很容易就能想到,二分查找有一个非常重要的前提条件,那就是其需要已经排序好的数列。这样,我们折半查找可以缩小查找的次数,更加的高效。其具体原理:在数列中取中间下标值mid的元素e,进行查找元素key的比较。如果相等即查找成功,如果不等,大于就只需要在后半部分查找,小于需要在前半部分查找。不管是前半部分还是后半部分,我们在取其中间值mid原创 2021-09-13 18:12:46 · 1451 阅读 · 5 评论 -
Python数据结构与算法(18)---检索算法
目录检索算法线性查找图解线性查找实战:线性查找检索算法数据结构的排序算法,到17篇归并排序就彻底讲解完成。从今天开始,我们将进入全新的数据结构知识,它的名字叫查找算法,也叫检索算法。检索算法又分为排序检索与非排序检索。排序检索顾名思义就是先排序在进行查找,在数据库的查找中,我们往往都是这么做的。当然非排序检索也存在,只不过效率非常低。检索算法包括线性查找、二分查找、插值查找、斐波拉契查找、分块查找、哈希查找以及回溯查找7个算法。所以,从18到24篇都是检索算法的内容知识。下面,我们来介绍今天第1个原创 2021-09-10 18:18:31 · 1509 阅读 · 4 评论 -
Python数据结构与算法(17)---归并排序
目录归并排序图解归并排序实战:归并排序归并排序归并排序,又名Merge Sort,是建立在归并操作上的一种有效的排序算法。其具体原理有2个关键字:分与治。分:我们需要进行分的操作,将数列均衡的分成2部分(n//2),当然如果是奇数,可以自己决定将多余的数分到前半部分,还是后半部分。当分成2部分之后,在递归的对左右子序列继续2分,以此类推,直到只有1个元素,再也分不下去。治:所有元素分完之后,开始大小比较归并操作,从2个元素开始进行归并的比较,直到归并到n//2为止。其时间复杂度为:O(n log原创 2021-09-08 17:58:57 · 1322 阅读 · 6 评论 -
Python数据结构与算法(16)---快速排序
目录快速排序图解快速排序实战:快速排序快速排序快速排序,又称Quick Sort,其本身对冒牌排序进行了相应的改进。其基本原理:通过一轮排序将要排序的数据分割成独立的2个部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再按照此放法对2部分数据分别进行快速排序,整个排序过程可以递归进行,直到整个数据变成有序序列。具体算法实施过程如下:首先,选取列表的最后一个元素最为基准数N,小于N的放前边,大于等于N的放后面。然后,接着再取前边的最后一个数为基准,同上放置。一直到每部分的下标相等,即原创 2021-09-06 18:32:57 · 1336 阅读 · 6 评论 -
Python数据结构与算法(15)---希尔排序
目录希尔排序图解写入排序实战:希尔排序希尔排序希尔排序,又称作Shell Sort,也叫缩小增量排序算法,是前文讲解的插入排序更高效的一种排序算法。其原理是:在n个元素的列表里,取增量n/2。数列开始值与增量值的尾值进行比较,小的放前面,大的放后面;把增量的前后都比较一遍,然后增量数-1。继续从头到尾进行比较,并调整大小;一直到增量等于1,就完成了所有列表元素的排序。至于增量规则可以自行定义。图解写入排序假设,又一个列表为[8,0,4,3,2,1]。具体原理步骤如下:第1次,增量为3,那么需要原创 2021-09-03 18:52:09 · 1879 阅读 · 11 评论 -
Python数据结构与算法(14)---插入排序
目录插入排序图解插入排序实战:插入排序插入排序插入排序,又名Insertion Sort,其原理是数列前面为排序完成的值,数列后面为未排序的值。假设前面n-1(其中 n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。图解插入排序原理过程如下:输入n个数值的列表接着,进行下标0和1的数值比较,把大的放后面,小的插入到前面,第1轮排.原创 2021-09-01 19:02:09 · 1367 阅读 · 6 评论 -
Python爬虫:详解Appium如何爬取手机App数据以及模拟用户操作手势
目录Appium模拟操作屏幕滑动屏幕点击屏幕拖动屏幕拖拽文本输入Appium在前文的讲解中,我们学会了如何安装Appium,以及一些基础获取App元素内容的方式。但认真看过前文的读者,肯定在博主获取元素的时候观察到了一个现象。那就是手机App的内容并不是一次性加载出来的,比如大多数Android手机列表ListView,都是异步加载,也就是你滑动到那个位置,它才会显示出它的内容。也就是说,我们前面爬取微博首页全部信息的时候,如果你不滑动先加载一定的微博内容,也就如上图所示,只能获取2个微博内容。原创 2021-08-27 19:34:13 · 12610 阅读 · 16 评论 -
Python爬虫:爬取手机App数据,记得安装配置Charles
目录Python爬虫配置Charles设置手机代理服务器安装证书安装PC证书安装Android手机证书Python爬虫对于现在的爬虫程序来说,PC端网页数据往往并不理想。比如就拿CSDN来说,一篇帖子是否上热榜其根据的是App端数据,并不是PC端网页数据。这也是时代的进步,从PC端到移动端,而且还有像小红书一样的App,其根本不提供PC端网页,只有App,要爬取这些数据,普通的Python爬虫肯定已经淘汰。所以,我们需要借助Charles来抓取手机的HTTP与HTTPS数据包。尽然要通过Charle原创 2021-08-16 19:37:58 · 11931 阅读 · 29 评论 -
Python数据结构与算法(13)---选择排序
目录选择排序选择排序原理Python实现选择排序选择排序选择排序,英文称为Selection Sort,它是另外一种简单的排序算法。在数据集合中,通过一轮的新循环找到最小值,把它放到第一个位置,然后在剩余的数据中再找最小值,放到第二个位置,直到所有排序完成。选择排序原理假设,Python有一个n个元素的列表。那么实现步骤分为3步骤:外层开启0到n-1的循环每轮循环记住最小值的下标,循环完成后,将值放在最前面接着继续循环,标记最小值的下标,最后把最小值放到当前循环开始的位置,依次类推。直到n原创 2021-08-09 20:19:53 · 1309 阅读 · 9 评论 -
Python数据结构与算法(12)---冒泡排序
目录冒泡排序冒泡排序原理Python代码实现冒泡排序冒泡排序冒泡排序,其英文为Bubble Sort。是指把一组数据从左边开始依次进行两两交换,小的方前面,大的放后面,通过反复比较一直到没有数据需要交换为止。该排序方法由于很像水里的泡泡,从水底冒出的,故称之为冒泡排序。冒泡排序原理冒牌排序的原理如下:从列表开始,依次两两比较值的大小,把大的往后交换,一直到末尾,这样列表中最大的值肯定就是末尾的值。接着,在从列表开始,两两比较知道交换到倒数第二位,那么第二大的值确定。依次循环到只剩1,完成所原创 2021-08-06 18:20:55 · 2025 阅读 · 10 评论 -
为什么程序员用笛卡尔心形曲线告白的人,都还是单身?
目录笛卡尔的感人故事残忍的真相画出爱心线笛卡尔的感人故事1649年,法国数学家笛卡尔在欧洲爆发黑死病的时候,流浪到了瑞典,在瑞典斯德哥尔摩的街头邂逅了18岁的公主克里斯丁。这个时候,他意外的收到通知,瑞典国王聘请笛卡尔做了小公主的数学老师。小公主的数学在笛卡尔的帮助下突飞猛进,每天形影不离便产生了爱慕之情。但是不久之后,国王得知两人相爱后便大怒,于是下令将笛卡尔处死,幸得小公主苦苦相求,国王才没有杀死笛卡尔,而将其流放,而公主也被国王软禁了起来。在笛卡尔流放到法国之后,笛卡尔于是决定天天给公主写信原创 2021-08-04 19:21:15 · 1866 阅读 · 7 评论 -
Tensor:Pytorch神经网络界的Numpy
目录Tensor创建Tensor修改Tensor维度截取元素TensorTensor,它可以是0维、一维以及多维的数组,你可以将它看作为神经网络界的Numpy,它与Numpy相似,二者可以共享内存,且之间的转换非常方便。但它们也不相同,最大的区别就是Numpy会把ndarray放在CPU中进行加速运算,而由Torch产生的Tensor会放在GPU中进行加速运算。对于Tensor,从接口划分,我们大致可分为2类:torch.function:如torch.sum、torch.add等。tenso原创 2021-08-02 19:43:56 · 2364 阅读 · 7 评论 -
Python爬虫:通过Selenium库学习如何爬取京东畅销排行榜书籍
目录Selenium库基本用法查找节点查找单个节点Selenium库前面,我们分析的都是简单的网页直接加载所得的结果。也就是说,通过requests库请求的网页数据都是存在的。但是,现实并不总是如此,有很多大型的网站其网页的数据都是通过javascript执行后获取的,如果需要常规处理爬虫,我们需要分析JavaScript代码。但即使你分析出来了,也可能有大量的数据是经过加密处理的,有时候很难找到解析的规律,这个时候想要抓取数据,就必须等待浏览器加载完成之后获取。而要得到所见即所得的网页数据,就必原创 2021-07-30 19:36:54 · 4294 阅读 · 15 评论 -
初识PyTorch:从安装到入门,从入门到放弃
目录PyTorch安装配置PyTorchPyTorch是Facebook团队于2017年1月发布的一个深度学习框架,虽然晚于TensorFlow,也没有TensorFlow火,但目前已经与TensorFlow奇虎相当。而且PyTorch采用了Python语言的接口,可以说它才是Python程序员最容易上手的深度学习框架。它就像GPU的Numpy,与Python一样都属于动态框架。PyTorch继承了Torch的灵活,动态的编程环境和友好的用户界面,支持以快速和灵活的方式构建动态神经网络。还允许在训原创 2021-07-28 19:20:14 · 1526 阅读 · 5 评论 -
Python爬虫:还在纠结买什么手机?pyquery库给你参考答案
目录pyquery库基本用法CSS选择器查找节点查找子节点查找父节点查找其兄弟节点获取节点信息修改节点伪类选择器实战:抓取京东手机销量排行榜pyquery库虽然Beautiful Soup库的功能非常强大,但CSS选择器功能有些弱,至少对于pyquery库来说是非常弱的。而且pyquery库并不是Python的标准库,所以在使用pyquery库之前需要安装,示例命令如下所示:pip install pyquery安装完成之后,我们就可以愉快的玩耍pyquery库了。需要注意的是,后面的所有解析代原创 2021-07-26 18:31:36 · 5506 阅读 · 43 评论 -
Python爬虫:想听榜单歌曲?使用BeautifulSoup库只需要14行代码即可搞定
目录BeautifulSoup库安装BeautifulSoup库BeautifulSoup库简介选择解释器基础用法节点选择器获取节点名称属性内容获取所有子节点获取所有子孙节点父节点与兄弟节点方法选择器find_all()方法BeautifulSoup库虽然说XPath比正则表达式用起来方便,但是没有最方便,只有更方便。我们的BeautifulSoup库就能做到更方便的爬取想要的东西。安装BeautifulSoup库使用之前,还是老规矩,先安装BeautifulSoup库,指令如下:pip inst原创 2021-07-23 18:20:16 · 2169 阅读 · 26 评论 -
Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法
目录lxml库lxml基本用法解析XML文件解析HTML文件XPath什么是XPathXPath语法XPath实战选取此节点的所有子孙节点选取此节点的所有子节点lxml库lxml是Python的一个解析库,专门用于解析XML与HTML,支持XPath解析方式。由于lxml库的底层是使用C语言编写的,所以其解析效率非常的高。在我们后面讲解使用该库之前,我们需要安装该库。一般通过如下命令进行安装即可,代码如下:pip install lxmllxml基本用法既然,lxml库支持解析XML以及HTM原创 2021-07-21 18:08:45 · 2754 阅读 · 23 评论 -
Python爬虫:自动评论何须学完爬虫,只需要掌握requests库即可
目录网络库requests发送HTTP请求GET请求POST请求抓取二进制图片网络库requests其实,我们有专门的网络库进行直接的网络请求与处理,它就是requests库。在我们开始讲解与使用之前,需要通过如下命令进行安装:pip install requests首先,我们先来看看requests库可以进行哪些操作:发送HTTP请求设置HTTP请求头响应数据处理Cookie使用代理超时处理上传文件维持会话身份验证打包请求SSL证书验证下面,我们来一一介绍这些操作具体原创 2021-07-19 18:29:29 · 4395 阅读 · 348 评论 -
Python爬虫:urllib3与urllib到底有何区别?内行人告诉你答案
目录网络库urllib3网络请求GET请求POST请求HTTP响应头网络库urllib3urllib3是比urllib库更强大的存在,目前已经有许多的原生系统已经开始使用urllib3。urllib3具有如下优点:支持HTTP和SOCKS代理支持压缩编码100%测试覆盖率具有链接池线程安全客户端SLL/TLS验证协助处理重复请求和HTTP重定位使用multipart编码上传文件因为urllib3并不是Python的标准库,所以我们使用之前,需要进行下载安装,具体命令如下所示:p原创 2021-07-16 18:28:27 · 6214 阅读 · 41 评论 -
Python爬虫:史上最详细的Python爬虫库urllib讲解,绝对经典,值得收藏
目录网络库urllibrequest发送GET请求发送POST请求请求超时处理爬虫伪装Parse中文的编码与解码网络库urlliburllib库是Python3内置的HTTP请求库,不需要单独安装,默认下载的Python就已经包含了该库。urllib库有4个模块:request:最基本的HTTP请求模块,可以用法发送HTTP请求,并接收服务器的响应数据,这个过程就像在浏览器地址栏输入URL一样。parse:工具模块,提供了很多处理URL的API,如拆分、解析、合并等。robotparser:用原创 2021-07-14 18:42:56 · 3830 阅读 · 18 评论 -
Python:学习Numpy,收藏这一篇文章就Go了
目录Numpy生成Numpy数组从已有数据中创建数组通过random生成数组创建多维数组arange与linspace生成数组NumpyNumpy全称Numerical Python。它提供了2种基本的对象:ndarray与ufunc。ndarray是存储单一数据的多维数组,它相对于list列表可以快速的节省空间,提供数组化的算数运算和高级的广播功能。ufunc是能够对数组进行处理的函数,这些标准的数学函数对整个数组的数据进行快速运算,且不需要编写循环。Numpy其他优点:它是读取/写入磁盘上原创 2021-07-12 19:02:45 · 1784 阅读 · 39 评论 -
Python:38行代码获取公众号下所有的文章
目录导出公众号所有文章开发者ID与开发者密码获取Json格式的公众号文章信息保存数据到CSV文件导出公众号所有文章随着互联网的不断发展,网络上兴起了很多的自媒体平台。不用我说,相信大家也能知道当下非常流行的平台都有哪些。可以说凡是比较知名的自媒体,都有自己的公众号。但是平台的创新与出现可谓盛出不穷,如果需要入住平台,肯定需要获取原平台的历史资源。比如说微信公众号,我们就需要获取微信公众号的文章,将其导出后,入住其他的平台,那么如何获取自己公众号下的所有文章呢?开发者ID与开发者密码其实,公众号给原创 2021-06-23 19:14:22 · 3146 阅读 · 20 评论 -
Python数据结构与算法(11)---对象的非永久引用weakref
目录对象的非永久引用weakref引用引用回调最终化对象代理缓存对象对象的非永久引用weakrefweakref库支持对象的弱引用。正常的引用会增加对象的引用数,并避免它被垃圾回收。但结果并不总是期望的那样。比如,有时候可能会出现一个循环引用,或者有时候需要内存时,可能要删除对象的缓存。而弱引用是一个不能避免对象被自动清理的对象句柄。引用下面,我们来看一个简单的例子,示例如下:import weakrefclass MyObject: def __del__(self):原创 2021-06-17 18:33:51 · 1268 阅读 · 8 评论 -
Python数据结构与算法(10)---二进制数据结构Struct
目录前言前言在C/C++语言中,struct被称为结构体。而在Python中,struct是一个专门的库,用于处理字节串与原生Python数据结构类型之间的转换。原创 2021-06-14 19:12:50 · 18054 阅读 · 15 评论 -
socket库:Python实现组播与发送二进制数据
目录前言前言点对点连接可以处理很多通信需求,不过随着直接连接数的增加,在多对通信方之间传递相同的消息会变得越来越困难。单独地向各个接收方发送消息会耗费额外的处理时间和带宽,这对于诸如完成流视频或音频操作的应用来说会代码显著的性能问题。而使用组播(multicast)向多个端点同时发送消息可以得到更好的效率,因为网络基础设施可以确保数据包会被传送到所有接收方。组播消息总是使用UDP发送,因为TCP需要提供一对通信系统。组播的地址被称为组播组,这是常规的IPv4地址范围的一个子集(224.0.0.0~原创 2021-06-11 18:41:07 · 3035 阅读 · 15 评论 -
socket库:Python实现UDP客户和服务器通信
目录前言服务器代码客户端代码前言前文使用TCP面向流的套接字,今天讲解的UDP的工作方式与TCP/IP不同。UDP是用户数据报协议,是一个面向消息的协议。一方面,UDP不需要一个长期活动连接,所以建立UDP套接字稍微简单一些。另一方面,UDP消息必须放在一个数据报中。在IPv4中,数据报包含65507个字节,这些字节信息中还包括首部信息。因为UDP不需要长期的连接,所以它无法得到TCP所能提供的传输保障。服务器代码因为UDP并没有连接,所以服务器不需要监听和接收连接。它只需要使用bing()将其原创 2021-06-08 19:26:02 · 7156 阅读 · 9 评论 -
socket库:Python实现TCP/IP客户和服务器通信
目录前言简单的搭建服务器与客户端服务器客户端前言套接字除了前文用于分析网络地址等功能之外,还可以配置一个服务器,监听到来的消息。比如你在网络上跟网络机器人聊天,你发送数据到机器人(服务器),然后服务器反馈聊天数据信息给你。当然,机器人的回复还涉及机器学习,但简单的消息反馈涉及的就是套接字的知识。而且,如果你直接将服务器配置为连接到其他应用的客户端,那么双向通信也可以实现。(比如QQ聊天)简单的搭建服务器与客户端既然已经了解了套接字的应用。下面,我们来实现一个简单的单向通信TCP/IP服务器与客户原创 2021-06-04 18:39:07 · 4397 阅读 · 28 评论 -
socket库:Python网络通信套接字
目录前言什么是套接字?地址簇套接字类型套接字的简单应用gethostbyname_ex()与gethostbyname()getservbyname()与getservbyport()前言socket库提供了一个底层C API,可以使用BSD套接字接口实现网络通信。它包括socket类,用于处理具体的数据通道,还包括用来完成网络相关任务的函数,如将一个服务器名转换为一个地址以及格式化数据以便在网络上发送。什么是套接字?套接字是程序在本地或者通过互联网来回传递数据时所用通信通道的一个端点。套接字有2原创 2021-06-03 19:24:19 · 2393 阅读 · 40 评论 -
Python爬虫:Xpath获取关键标签,实现盖楼抽奖
目录前言分析链接切分提取tid前言目前对于Python来说,使用最多的功能肯定是Python爬虫。比如抢购茅台以及刷评论,盖楼等抽奖活动贴,都可以应用到爬虫的相关知识。而学习Python爬虫,不仅可以增加自己的知识储备,丰富自己的知识库,而且还能帮助自己增加额外的收入。所以,今天博主将通过某个盖楼活动贴,来实现自动评论盖楼抽奖功能。本篇内容接着上一篇博文的内容进行全自动盖楼刷评论讲解。点击跳转到前一篇。分析链接一般来说,我们参加某个网站的盖楼抽奖活动,并不是仅仅只参加一个,而是多个盖楼活动一起原创 2021-06-02 19:51:34 · 2532 阅读 · 31 评论 -
hmac库:Python密码消息签名
目录前言消息签名二进制摘要前言HMAC算法可以用于验证信息的完整性,这些信息可能在应用之间传递,或者存储在一个可能有安全威胁的地方。其基本思路:生成实际数据的一个密码散列,并提供一个共享的秘密密钥。然后使用得到的散列检查所传输或存储的信息,以确定一个信任级别,而不传输秘密密钥。消息签名hmac库提供了一个new()函数来创建一个新对象来计算消息签名。示例如下:import hashlibimport hmacstr = 'Li YuanJing'hmac_maker = hmac.new原创 2021-05-29 19:47:16 · 1501 阅读 · 16 评论 -
hashlib库:Python的加密算法实践
目录前言MD5SHA1前言hashlib库定义了一个API来访问不同的密码散列算法。其底层由OpenSSL提供,所以OpenSSL库提供的所有算法都可以用,包括:MD5SHA1SHA224SHA256SHA384SHA512当然,这上面列举的只是其支持的一部分。真正全部支持的总类读者可以用过下面代码打印出来,示例如下:import hashlibprint(hashlib.algorithms_guaranteed)print(hashlib.algorithms_availa原创 2021-05-28 19:03:32 · 1144 阅读 · 7 评论 -
Python数据结构与算法专栏目录
Python数据结构与算法专栏目录Python数据结构与算法(1)—枚举类型enumPython数据结构与算法(2)—字典序列ChainMapPython数据结构与算法(3)—统计可散列的对象CounterPython数据结构与算法(4)—双端队列dequePython数据结构与算法(5)—namedtuplePython数据结构与算法(6)—OrderedDictPython数据结构与算法(7)—数组arrayPython数据结构与算法(8)—维护有序列表bisectPython数据结原创 2021-05-28 13:19:44 · 1122 阅读 · 1 评论 -
Python自然语言处理专栏目录
Python自然语言处理专栏目录初体验HanLP—Python自然语言处理(1)切分算法—Python自然语言处理(2)字典树—Python自然语言处理(3)停用词过滤—Python自然语言处理(4)简繁体转换—Python自然语言处理(5)拼音转换—Python自然语言处理(6)语料库标注与训练模型—Python自然语言处理(7)预测分词—Python自然语言处理(8)...原创 2021-05-28 13:15:54 · 1156 阅读 · 2 评论 -
一天一篇Python库专栏目录
一天一篇Python专栏目录string库:Python的文本常量与字符串模板time库:Python的时间时钟处理datetime库:Python日期与时间值管理计算calendar库:Python日历的处理与生成textwrap库:Python格式化文本段落os.path库:Python操作和处理文件路径Pathlib库:Python面向对象的文件路径处理glob库:文件名的匹配[random库:Python随机数的生成与应用] (https://liyuanjinglyj.blog原创 2021-05-28 13:10:58 · 1301 阅读 · 0 评论 -
1分钟制作朋友圈9宫格图片,不用任何P图软件
目录前言生成9宫格图片生成9宫格动图短视频生成动图9宫格GIF直接生成动图9宫格生成9宫格视频使用pyqt5打包成exe界面前言最近网上朋友圈微博已经掀起了9宫格图片的玩法。可以说将单个图片,或者说单个动图亦或视频分割成9份发在朋友圈,感觉很有趣。今天,博主就通过Python-OpenCV的知识,来帮助大家实现任意图像,视频,动图的9宫格原理。文末还有配套生成9宫格的pyqt5的源代码以及exe可运行文件奉上。生成9宫格图片一般来说,我们生成的9宫格图片是正方形的,毕竟朋友圈与微博整体的9宫格就是原创 2021-05-26 18:54:02 · 5328 阅读 · 47 评论 -
Python数据结构与算法(9)---优先级队列queue
目录前言基本用法LIFO队列优先队列前言queue库提供了一个适用于多线程编程的先进先出(FIFO)数据结构,可以用来在生产者与消费者线程之间安全地传递消息或其他数据。它会为调用者处理锁定,使多个线程可以安全而更容易地处理同一个Queue实例。Queue的大小可能受限,以限制内存使用或处理。基本用法Queue类实现了一个基本的先进先出容器。使用put()将元素增加到这个序列的一段,使用get()从另一端删除。具体代码如下所示:import queueq = queue.Queue()fo原创 2021-05-25 19:49:46 · 2035 阅读 · 14 评论 -
Python数据结构与算法(8)---维护有序列表bisect
目录前言有序插入重复值处理前言bisect实现了一个算法来向列表中插入元素,同时仍保持列表有序。本篇,将详细介绍bisect库高效率的玩转列表。有序插入首先,我们来看看bisect库是如何实现列表的拆入的。具体代码如下所示:import bisecta = [7, 5, 4, 1, 9, 8, 2, 3, 6, 0, 5]print(a)new_a = []for i in a: position = bisect.bisect(new_a, i) bisect.ins原创 2021-05-24 19:28:28 · 2048 阅读 · 3 评论 -
Python数据结构与算法(7)---数组array
目录前言初识数组array基本用法前言一般来说,我们将Python中的list列表当作数组。但是Python中真正的数组是:array。它看上去跟list很相似,但是list列表成员可以是任意类型的组合也可以是单一的类型组合,而array数组并不能是,它的所有成员必须是相同的类型。包括了所有的数值类型或其他固定大小的基本类型。支持的类型如下表:代码类型最小大小(字节)bInt1BInt1hSigned short2HUnsigned short原创 2021-05-23 18:04:36 · 2564 阅读 · 7 评论