先从搭建环境开始。作为一个Python初学者来说,一个趁手的编译器是很重要的,本想用VS来开发Python,但是感觉实际开发中没有几家公司会用VS来开发Python,没办法就换成了MyEclipse。一、首先下载和安装Myeclipse就略过了。二、安装Python。一般的开发环境是在linux,网上很多教程和视频也都是在linux下配置和开发的。我的开发环境是64位win8系统,先从官网下载64位的Python安装程序。可以从这里选择要下载的版本http
系统 2019-09-27 17:48:04 1872
Protocol和服务器一样,也是通过该类来实现。先看一个简短的例程:fromtwisted.internet.protocolimportProtocolfromsysimportstdoutclassEcho(Protocol):defdataReceived(self,data):stdout.write(data)在本程序中,只是简单的将获得的数据输出到标准输出中来显示,还有很多其他的事件没有作出任何响应,下面有一个回应其他事件的例子:fromtw
系统 2019-09-27 17:38:26 1872
1.引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下DougLea是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinkedQueue的,相信从大师身上我们能学到不少并发编程的技
系统 2019-08-29 22:40:24 1872
'''进程间的通信'''"""multiprocessing模块支持进程间通信的两种主要形式:管道和队列都是基于消息传递实现的,"""frommultiprocessingimportQueueq=Queue(3)#put,get,put_nowait,get_nowait,full,emptyq.put(1)q.put(2)q.put(3)#q.put(1)#队列已经满了,再加程序就会一直停在这里,等待数据被别人取走,不取走就一直停在这##q.get(1
系统 2019-09-27 17:55:59 1871
模块安装:数据操作用到的模块pymysql,需要通过pipinstallpymysql进行安装。redis操作用的模块是redis,需要通过pipinstallredis进行安装。检验是否安装成功:进入到Python命令行模式,输入importpymysql、importredis,无报错代表成功;mysql操作方法如下:查询数据:fetchone、fetchmany(n)、fetchall()importpymysql#建立mysql连接,ip、端口、用
系统 2019-09-27 17:54:49 1871
如下所示:importosos.system()os.popen().read().strip()#上面2种方法是python执行终端/控制台命令的常见方法#os.system('pingwww.baidu.com')执行成功返回0#ping=os.popen('pintwww.baidu.com').read().strip()返回输出结果#注:os.system()执行完成会关闭所以当执行后续命令需要依赖前面的命令时,请将多条命令写到一个os.syst
系统 2019-09-27 17:54:00 1871
简单使用最开始,我们用最短的代码体验一下logging的基本功能。importlogginglogger=logging.getLogger()logging.basicConfig()logger.setLevel('DEBUG')logger.debug('logsomething')#输出out>>DEBG:root:logsomething第一步,通过logging.getLogger函数,获取一个loger对象,但这个对象暂时是无法使用的。第二步
系统 2019-09-27 17:52:26 1871
之前用了谷歌的selenium模块,为了练习一下所以写了这个(没错才不是别的理由!)代码里涉及到了各种复杂的情况,包括要找的div在别的iframe中的处理方式,顶部导航栏的定位方式等等。综合性很强下面是代码fromseleniumimportwebdriverimporttimefromfake_useragentimportUserAgentopt=webdriver.ChromeOptions()#opt.add_argument('--headle
系统 2019-09-27 17:52:25 1871
2048的python实现。修改自某网友的代码,解决了原网友版本的两个小bug:1.原版游戏每次只消除一次,而不是递归消除。如[2,2,2,2]左移动的话应该是[4,4,0,0],而不是[8,0,0,0]2.对游戏结束的侦测有bug,已经改正。2048game.py#-*-coding:utf-8-*-"""CreatedonTueJul114:15:392014@author:kelvin"""importrandomclassgame2048:tota
系统 2019-09-27 17:51:12 1871
PIL提供了通用的图像处理功能,以及大量的基本图像操作,如图像缩放、裁剪、旋转、颜色转换等。Matplotlib提供了强大的绘图功能,其下的pylab/pyplot接口包含很多方便用户创建图像的函数。为了观察和进一步处理图像数据,首先需要加载图像文件,并且为了查看图像数据,我们需要将其绘制出来。fromPILimportImageimportmatplotlib.pyplotaspltimportnumpyasnp#加载图像img=Image.open("
系统 2019-09-27 17:50:40 1871