![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
释晓
天道酬勤
展开
-
python正则表达式与re模块
正则表达式语法:符号 意义 . 表示任意字符,如果说指定了 DOTALL的标识,就表示包括新行在内的所有字符。 ^ 表示字符串开头。 $ 表示字符串结尾 *,+,? '*'表示后面可跟 0 个或多个字符,'+'表示后面可跟 1 个或多个字符,'?'表示后面可跟 0 个或多个字符 *?,+?,?? 在上面的结果中只取第一个(非贪婪表达式)...转载 2018-08-25 19:05:01 · 176 阅读 · 0 评论 -
pyhon多线程——5、线程同步之condition
如何使用多线程实现一问一答呢?可以使用condition中的notify和wait方法实现,看代码import threadingimport timeclass XiaoAi(threading.Thread): def __init__(self,cond): super().__init__(name='小爱') self.cond = co...原创 2018-11-08 15:11:08 · 250 阅读 · 0 评论 -
python多线程————6、线程同步之Semaphore
控制代码进入线程的数量,控制并发数量,可以使用信号量Semaphore。1、定义信号量sem = threading.Semaphore(3) #3为并发数量2、消耗信号量 sem.acquire()3、释放信号量 sem.release()#Semaphore是用于控制进入数量的锁#文件,读、写, 写一般只是用于一个线程写,读可以允许多个#做爬虫import t...原创 2018-11-08 16:31:14 · 409 阅读 · 0 评论 -
python多线程————7、ThreadPoolExecutor线程池
所用到的模块:from concurrent.futures import ThreadPoolExecutor,as_completed,wait,FIRST_COMPLETED1、建立线程池:executor = ThreadPoolExecutor(max_workers= )2、提交执行函数到线程池:task = executor.submit(func,(args))3、获...原创 2018-11-08 19:16:39 · 2397 阅读 · 0 评论 -
python多线程————8、多线程与多进程对比
#多进程编程#耗cpu的操作,用多进程编程,对于io操作来说,使用多线程编程,进程切换代价要高于线程import timefrom concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor,as_completed#1、对于耗费cpu的操作,多进程优于多线程def fib(n): if n<=2:...原创 2018-11-09 00:19:14 · 193 阅读 · 0 评论 -
python排序算法
各种排序算法分类1、插入排序1)直接插入法:把列表分两部分,待插入与被插入部分,不断从待插入表中获取元素插入被插入表中def insert_sort(L): for i in range(len(L)): for j in range(i,0,-1): if L[j] < L[j-1]: L[j...原创 2018-12-05 23:23:11 · 134 阅读 · 0 评论 -
python协程——1、可迭代、迭代器、生成器
协程是python中的一个难点,现在开始学习协程,要认识协程首先就要理解生成器。这篇文章主要是巩固生成器的知识。 一、理解可迭代、迭代器、生成器 现在我们常见的额数据类型:str,list,tuple,dict,deque等说起吧,我们借助collections.abc模块与isinstance()来区分来分类吧from collections.abc import ...原创 2018-12-24 16:36:02 · 191 阅读 · 0 评论 -
python协程——2、深入理解yield from
一、为什么使用协程 例如,在我们使用爬虫时一般由两个过程,一个是爬取网页html,另一个是解析html,获取htlm(耗html)是非常好IO的,一个网页还好,如果我们爬取网页的数据庞大就会耗掉很多时间,如果我们在获取网页时暂停一下去做别的事,不用等待网页返回,等过段时间回头来到刚刚暂停的地方,接受返回的html内容,然后再解析。而python可以从语言本身给我们实现了这样的功能,这...转载 2018-12-25 01:28:13 · 328 阅读 · 0 评论 -
python协程——3、asyncio、await
一、定义创建协程 在函数前面加上async关键字,这个函数对象就是一个协程通过isinstance函数,确认他是否为Coroutine类型。 from collections.abc import Coroutineimport asyncioasync def hello(name): await 1 print("hello",name...原创 2018-12-25 18:17:03 · 4915 阅读 · 1 评论 -
IO密集型与CPU密集型操作
一、什么是IO密集型操作:IO密集型是指系统cpu性能相对于硬盘、内存要好太多,此时系统运作时,大部分时间都是cpu在等IO的读写操作,系统cpu利用率不高。I/O bound的程序一般在达到性能极限时,CPU占用率仍然较低。这可能是因为任务本身需要大量I/O操作,而pipeline做得不是很好,没有充分利用处理器能力。二、什么是CPU密集型操作:cpu密集型也就计算密集型,系统硬盘、...原创 2019-01-27 12:21:54 · 3512 阅读 · 0 评论 -
学习协程前需要理解的几个概念
一、并发、并行、同步、异步、阻塞、非阻塞1、并发是指一个时间段内,有几个程序同时在一个cpu上运行,但任意一时刻只有一个程序在cpu上运行2、并行是指任意一时刻点上,有多个程序同时运行在多个cpu上3、同步是指代码调用IO操作时,必须等待IO操作完成才返回的调用方式4、异步是指代码调用IO操作时,不必等待IO操作完成就返回的调用方式5、阻塞是指调用函数的时候当前线程被挂起6...原创 2018-11-11 15:30:14 · 163 阅读 · 0 评论 -
python多线程————3、多线程间通信:共享变量,queue
1、共享变量#通过共享变量import timeimport threadingurl_list = []def get_detail_html(): global url_list while True: if len(url_list): url_list.pop() print("get detai...原创 2018-11-05 16:59:18 · 6364 阅读 · 2 评论 -
python多线程———2、建立多线程的两种方式
法一、使用Thread类实例化法二、继承Thread来实现多线程#对于io操作来说,多线程和多进程性能差别不大#1、使用Thread类实例化import timeimport threadingdef get_detail_html(url): print("get detail html started") time.sleep(1) print("...原创 2018-11-05 15:59:53 · 422 阅读 · 0 评论 -
django.db.utils.IntegrityError: (1048, "Column 'last_login' cannot be null")解办法:
python manage.py migrate auth原创 2018-09-10 00:20:40 · 10955 阅读 · 0 评论 -
头条校招(今日头条2017秋招真题)1——python解法
题目描述头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队。每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来。在选题之前,我们对题目进行了盲审,并定出了每道题的难度系数。一场考试包含3道开放性题目,假设他们的难度从小到大分别为a, b, c,我们希望这3道题能满足下列条件:a<= b<= cb - a<= 10c - b<= 10所...原创 2018-10-07 11:35:18 · 739 阅读 · 0 评论 -
比大小python解法
问题描述:现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?输入 第一行有一个整数n(0<n<=10000); 随后有n行,每行是一个排列; 样例输入 3 abcdefghijkl hgebkflacdji gfke...原创 2018-10-16 11:11:57 · 1393 阅读 · 0 评论 -
上台阶
题目描述:有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法。输入 输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数。 样例输入 2...原创 2018-10-10 02:23:28 · 771 阅读 · 0 评论 -
击鼓传花
题目描述 学校联欢晚会的时候,为了使每一个同学都能参与进来,主持人常常会带着同学们玩击鼓传花的游戏。游戏规则是这样的:n个同学坐着围成一个圆圈,指定一个同学手里拿着一束花,主持人在旁边背对着大家开始击鼓,鼓声开始之后拿着花的同学开始传花,每个同学都可以把花传给自己左右的两个同学中的一个(左右任意),当主持人停止击鼓时,传花停止,此时,正拿着花没传出去的那个同学就要给大家表演...原创 2018-10-10 14:18:04 · 2435 阅读 · 0 评论 -
python多线程————4、线程同步之Lock,RLock
在多线程同时请求同一个资源并进行修改时可能会造成结果出错,例如共享变量 from dis import disimport threadinga = 0def add(): global a a += 1def desc(): global a a -= 1print(dis(add))print(dis(desc))...原创 2018-11-06 10:22:56 · 224 阅读 · 0 评论 -
python多进程———9、multiprocessing多进程编程
python多进程的multiprocessing的用法跟多线程threading的用法基本差不多,直接上代码吧 import multiprocessingimport osimport time#fork()只能在linux中使用# pid = os.fork()# if pid == 0:# print("子进程{},父进程是{}".format(os.get...原创 2018-11-09 14:31:12 · 171 阅读 · 0 评论 -
python多进程————10、进程间的通信-Queue、Manager、Pipe
一、Queue这里提到的队列模块大概有三个: 1、from queue import Queue (此模块适用于线程间通信,但不能用于进程间通信) 2、from multiprocessing import Queue (可以用于多进程,但不能用于进程池)import timefrom multiprocessing import Process,Queueimport q...原创 2018-11-10 23:56:34 · 5691 阅读 · 0 评论 -
python多线程——1、GIL
一、GIL是什么? 线程全局锁(Global Interpreter lock),python保护线程安全而采取的独立线程运行的限制。 1、明确一点GIL并不是python的特性,python完全可以不依赖GIL,它是在实现python解释器(Cpython)时引入的一个概念,Cpython是大部分情况下默认使用的python执行环境。a、python中一个线程对...原创 2018-11-05 15:25:06 · 252 阅读 · 0 评论 -
Django学习:一、创建项目以及配置
一、创建项目: 在创建Django 项目前必须有安装Django,使用pip install django。 如何改建项目? 1、使用命令行django-admin startproject Edu 2、在开发过程中为了方便直接使用pycharm(使用专业版)创建,在创建过程中还可以创建虚拟环境,创建第一个APP(users)...原创 2019-02-16 15:16:56 · 333 阅读 · 0 评论