并发与锁a.多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁b.c.互斥锁1.互斥锁,是使用一把锁把代码保护起来,以牺牲性能换取代码的安全性,那么Rlock后必须要relase解锁不然将会失去多线程程序的优势2.互斥锁的基本使用规则:1importthreading2#声明互斥锁3lock=threading.Rlock();4defhandle(sid):#功能实现代码5lock.acquire()#加锁6#
系统 2019-09-27 17:48:09 1770
创建Deque序列:fromcollectionsimportdequed=deque()Deque提供了类似list的操作方法:d=deque()d.append('1')d.append('2')d.append('3')len(d)d[0]d[-1]输出结果:3'1''3'两端都使用pop:d=deque('12345')len(d)d.popleft()d.pop()d输出结果:5'1''5'deque(['2','3','4'])我们还可以限制d
系统 2019-09-27 17:47:59 1770
背景最近在计划明年从北京rebase到深圳去,所以最近在看深圳的各个方面。去年在深圳呆过一段时间,印象最深的是,深圳总是突然就下雨,还下好大的雨。对于我这种从小在南方长大但是后面又在北京呆了2年多的人来说,熟悉而又无奈。今天早上本来想随便浏览浏览一个天气网站,看看深圳的历史天气如何的,但是,一不小心发现,这家网站竟然直接能用API来抓数据,这~~~还不抓一波,省的自己一个月一个月地看。先上最后的效果图:所有的code都在我的GitHub上:boydfd下面
系统 2019-09-27 17:47:57 1770
Python3使用pillow库生成随机验证码的代码如下所示:importrandom#pillow包的使用fromPILimportImage,ImageDraw,ImageFont,ImageFilter#Image负责处理图片#ImageDraw负责处理画笔#ImageFont负责处理文字#ImageFilter负责处理路径img=Image.new('RGB',(150,50),(255,255,255))#建立一个图片'''RGB:表示采用RGB
系统 2019-09-27 17:47:55 1770
众所周知python的拿手好戏就是爬虫抓取数据,性能优秀,抓取时间快,消耗低,这是python的优势。学会了爬虫后那我们就可以抓取竞争对手的数据,可以对数据进行分析,或者拿来使用(作者不赞成这样做哦)。最重要是对数据进行分析,这样对我们的运营自己的产品,提高用户的新增或留存都是很有帮助的,正所谓现在是大数据年代,没有数据我们也能利用别人的数据。那要怎样才能更好去学习python爬虫呢?今天推荐一本最新使用python3的书籍,值得阅读。《Python3网络
系统 2019-09-27 17:47:38 1770
1.a=[]arrays=[a*3]arrays其实为[[]]2.arrays=[a]*N看上去是创建了二维数组,但是只是创建N个指向a的引用,所以一旦a改变,arrays中N个list也会随之改变eg:a=[]N=3arrays=[a]*3arrays[0].append(1)#看上去只为第一个list添加整数1,实际上---print(arrays)输出为[[1],[1],[1]]3.arrays=[[]foriinrange(N)]eg:N=3arr
系统 2019-09-27 17:47:28 1770
1、介绍itertools是python的迭代器模块,itertools提供的工具相当高效且节省内存。使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环。-无限迭代器itertools包自带了三个可以无限迭代的迭代器。这意味着,当你使用他们时,你要知道要的到底是最终会停止的迭代器,还是需要无限地迭代鞋去。(1)count(初值=0,步长=1):count迭代器会返回从传入的起始参数开始的均匀间隔的数值。count也可以接收指定的步长参数。我们来看一
系统 2019-09-27 17:47:20 1770
序列化(Serialization)是将对象的信息转换为可以存储或传输的形式,后续还可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。在python中也可以进行序列化相关的操作,只是序列化的时候需要将对象保存为一个字典的类型。对于Python内置的数据类型(如str,unicode,int,float,bool,None,list,tuple,dict),可以直接进行序列化/反序列化处理;对于自定义类的对象进行序列化和反序列化时,需要我们自己定义
系统 2019-09-27 17:47:18 1770
函数的嵌套defone():print("第一个函数")deftwo():one()print("第二个函数")two()递归函数,就是函数内嵌套函数自身,下面是阶乘的递归方法defone(a):ifa==1:return1else:returnone(a-1)*aone(5)匿名函数:https://blog.csdn.net/GrofChen/article/details/93018250全局变量:https://blog.csdn.net/Grof
系统 2019-09-27 17:47:12 1770
首先通过一个例子来看一下本文中可能用到的对象和相关概念。复制代码代码如下:#coding:UTF-8importsys#模块,sys指向这个模块对象importinspectdeffoo():pass#函数,foo指向这个函数对象classCat(object):#类,Cat指向这个类对象def__init__(self,name='kitty'):self.name=namedefsayHi(self):#实例方法,sayHi指向这个方法对象,使用类或实
系统 2019-09-27 17:46:49 1770