自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Python 装饰器的用法

在说装饰器之前,需要明白什么是闭包一、 闭包闭包:在函数中再嵌套一个函数,并且引用外部函数的变量这样说可能并不是很形象,举个实例:def func1(): a = 1 def func2(num): num += a print(num) return func2func1()(3)“””4“””上述的代码就是一个闭包,函...

2020-04-07 14:27:27 354

原创 Python 数据结构之 堆、栈

堆和栈都是数据项按序排列的数据结构,栈是一种后进先出的数据结构,而堆是一种二叉树。在讲解堆栈之前,先说下队列。一、队列(1)队列的概念队列是一种列表,但是队列只能在队尾加入元素,队首删除元素(就跟排队是一个道理);由此看来,队列和栈刚好相反,是 先进先出(FIFO)。(2)Python语言中的队列 - - queue、dequePython中可以通过queue模块实现队列的相关操作而...

2020-02-16 17:07:20 901

原创 Python 进程、线程、协程(multiprocessing、threading)详解

在Python中多任务的实现方式为:1、多进程2、多线程3、协程4、多进程+多线程一、多任务原理多任务:操作系统可以同时完成多个任务单核CPU多任务原理:单个cpu核心轮流的执行各个程序,但是切换的速度非常快导致表面上看是同时在执行多核CPU多任务原理:真正的实现多任务,但是任务的数量会远远超过CPU核心的数量,因此操作系统会将各个任务轮流调度到各个核心上执行并发:任务看上去一起...

2020-02-15 18:28:22 463

原创 python之KMP算法(原理详解)

KMP算法其实就是字符串匹配的一种高效算法,通常称作模式匹配;本文结构如下:一、朴素的匹配算法1、匹配的概念2、朴素算法原理3、代码实现二、KMP算法1、KMP算法简介2、KMP算法原理详解3、求出next()函数4、代码示例一、朴素的匹配算法1、匹配的概念如下图所示,就是模式串T与主串S匹配成功,模式串首尾间的各个元素与主串之间的某一段元素完全相同2、朴素算法原理...

2020-01-20 21:31:30 1860

原创 python 数据结构之线性表---顺序表、链表

线性表是一种简单的数据结构,按照其储存方式,分为顺序表和链表。顺序表和链表的特点如下:顺序表的操作顺序表 L 的基本操作为:clear(L)置空length(L)求表中元素的个数insert(L,i,x)插入新元素delete(L,x删除已有元素empty(L)判断表是否为空index(L,x)返回指定元素在表中的位置pop(i)...

2020-01-17 15:33:28 670

原创 python之groupby()函数

itertools模块提供了内置函数groupby()能够方便的对数据进行分组,groupby(iterable, key=None)会对iterable生成的连续项进行分组,在分组的过程中会查找重复项,重复项会被定义为一组。函数最终会返回一个迭代器,其生成的元素为(key, group),其中key是一个分组的键值,group是一个迭代器示例:from itertools import g...

2020-01-15 11:39:56 550

原创 python之itemgetter()函数

operator模块中的itemgetter()函数,是获取对象指定域中的值>>> from operator import itemgetter>>> a = [1,2,3,4,5]>>> b = itemgetter(0)>>> b(a)1>>> c = itemgetter(0,1,2)&...

2020-01-15 10:26:54 20681 1

原创 python之zip()函数

zip(*iterables)函数时python的内置函数,其作用是将可迭代对象聚合在一起,并返回一个元组迭代器示例1:>>> x = ["a","b","c"]>>> y = [1,2,3]>>> z = [1,2]>>> for i in zip(x,y): print(i)('a', 1)('b', 2)...

2020-01-15 09:34:11 126

原创 python中的*args、**kwargs用法

在python中经常会遇见参数时*args与**kwargs的情况,其作用就是在搜集与分配参数。1、序列解包在python中,可以通过如下情况进行赋值:a,b,c = [1,2,3]此时等号左右两边的元素个数必须保持一致,如果不一致就会报错。使用运算符星号( * )收集多余的值>>> a, b, *rest = [5, 6, 7, 8, 9]>>>...

2020-01-10 15:59:11 284

原创 python基础之heapq模块(堆模块)

堆是一种数据结构,本质上是一种二叉树。在python中可以使用heapq模块实现,heapq可以实现一个简单的优先级队列。一、堆的性质堆分为小根堆与大根堆,小根堆的第一个元素可以理解为数值最小的元素,大根堆则相反,以下以小根堆为例在堆的插入和删除过程中,小根堆要保持其性质,即父节点的值要小于或等于其子节点的值,其值就是该数据的优先级二、堆的方法1、创建堆—heappush(heap, ...

2020-01-10 10:15:17 1027

原创 python基础之列表(list)

列表是python的一种内置数据结构,是可以修改的;本文总纲如下:一、list函数函数list能够创建列表,比如可以将字符串或元组创建为列表,任何序列都可以作为list的参数代码示例:二、基本操作(1)直接赋值直接赋值可以修改索引对应的元素值代码示例:(2)删除使用del进行删除,会将相应的元素彻底删除,列表的长度也将改变代码示例:(3)切片赋值首先切片可以对元素进行...

2020-01-08 18:17:09 186

原创 python基础之eval函数与exec函数

函数exec与eval都可以将字符串作为代码执行(1)eval(expression[, globals[, locals]])expression实参是一个字符串,以及可选的 globals 和 locals。globals 实参必须是一个字典。locals 可以是任何映射对象。代码示例1:a = eval("1+2")print(a)#3b = eval("x+y",{"x":1...

2019-12-05 23:16:48 148

原创 python基础之dict函数

dict函数是python的内置函数其主要作用是从其他映射或键-值对序列创建字典示例代码如下:item_1 = [("a",1),("b",2)]d1 = dict(item_1)print(d1)#{'a': 1, 'b': 2}item_2 = [("a",1),("b",(2,8))]d2 = dict(item_2)print(d2)#{'a': 1, 'b': (2,...

2019-12-04 22:18:28 1117

原创 python 爬虫学习笔记(三)--- 模拟浏览器登陆(Selenium与chromedriver实现)

前言:模拟登陆的方法有很多,自己最近也学习了很多登陆的方法,但随着现在网站反爬的加强,在网上以及书上看到的很多办法都已经失效。自己的js水平以及网络基本知识的欠缺,在模拟登陆这一块学习的始终不尽人意。好在使用Selenimu模拟登陆比较简单粗暴,能够成功登陆一些网站。虽然它的速度较慢,但也足以抚慰我心。闲话不多说,开始实际操作!...

2019-11-29 21:55:48 541

原创 python 爬虫学习笔记(二)--- Beutifulsoup 解析页面(find/find_all)

前言通过发送get请求会返回一个response对象,其实就是一个HTML文件,运用BeautifulSoup可以对文件进行解析。图解原理运用Beautifulsoup解析页面对于如何解析HTML页面,其实核心就是两点:1、定位2、获取目标内容当然除了BeautifulSoup,还可以用正则对页面进行解析;很多情况下两种方法需要同时运用。在解析页面时,BeautifulSoup有...

2019-11-20 17:35:55 455

原创 python 爬虫学习笔记(一)--- requests获取网页源代码(get请求 post请求区别)

python的requests库可以发起的http请求有如下几种:PUTDELETEHEADOPTIONSGETPOSTGET与POST是两种较常使用的请求,也是主要的获取网页源代码的方式。其对比如下:(Ⅰ)使用GET方式访问网页...

2019-11-19 16:12:35 1131

原创 python 字典浅拷贝(copy)与深拷贝(deepcopy)

关于python里面字典的复制,基本有以下三种情况:直接赋值使用copy()使用deepcopy()1、直接赋值a = {"g":(1,3),"h":[1,1,2]}b = ab["g"] = "a"print("a['g'] 的值为 {},b['g'] 的值为 {}".format(a['g'],b['g']))运行结果为:a[‘g’] 的值为 a,b[‘g’] 的值为...

2019-11-07 13:29:07 905 1

原创 用pyuic5将.ui文件转化为.py文件(处理one input ui file must be specified报错)

用cmd将.ui文件转换为.py文件开始菜单打开运行,输入cmd在命令行中输入形如:pyuic5 -o E:xxx\xxx\xxx.py E:xxx\xxx\xxx.ui其中分别指代你要生成的.py文件的路径和储存.ui文件的路径然后回车,结果报错最终解决办法是:.ui文件名不能有空格。路径名称当中的文件夹名称也不能有空格;比如你的.ui文件在 project program文...

2019-10-17 00:23:18 2482

原创 python 类的命名空间(关于类中self的理解)

python 类的命名空间最近自学python,学习到类,碰到一个很有意思的问题。因为自己是从小白自学,所以弄懂这个知识点花费了一定的时间。下面分几类情况分别讨论第一段代码如下:class Members(): member = 0 m1 = Members()m2 = Members()print(m1.member)print(m1.member)运行的结果为:00...

2019-10-14 10:52:47 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除