一、前言以前使用selenium的无头浏览器,自从phantomjs2016后慢慢不更新了之后,selenium也开始找下家,这时候谷歌的chrome率先搞出来无头浏览器并开放了各种api,随后firefox也开始做。现在selenium的测试也都支持这两个浏览器的无头模式了,只需要在引入的时候配置一下就可以了。之所以要采用谷歌chrome官方无头框架puppeteer的python版本pyppeteer,是因为有些网页是可以检测到是否是使用了seleni
系统 2019-09-27 17:52:58 2239
字符串在Python中是最简单也是最常用的数据类型之一,在CPython中字符串的实现原理使用了一种叫做Intern(字符串驻留)的技术来提高字符串效率。究竟什么是intern机制,这种机制又是通过什么方式来提高字符串效率的呢?希望这篇文章能够抛砖引玉。先来看一段代码:>>>s3="hello!">>>s4="hello!">>>s3iss4False>>>id(s3)80325968L>>>id(s4)80326048Ls3和s4虽然值是一样的,但确确实
系统 2019-09-27 17:52:22 2239
程序异常崩溃时会提供非常详细的错误信息,掌握正确的分析方法,就可以快速定位问题并解决问题,下面这段代码会引发异常导致程序终止deffunc_tet():func_sum('4',3)deffunc_sum(a,b):value=a+breturnvaluefunc_tet()运行这段程序,异常信息如下我将异常信息分为两部分,分析时,先关注最后一行绿色框内的信息,这里的信息明确的指明了异常的类型和异常的解释信息,这是我们分析问题的第一步,随着经验的积累,你很
系统 2019-09-27 17:52:03 2239
本文实例讲述了Pythonscipy的二维图像卷积运算与图像模糊处理操作。分享给大家供大家参考,具体如下:二维图像卷积运算一代码importnumpyasnpfromscipyimportsignal,miscimportmatplotlib.pyplotaspltimage=misc.ascent()#二维图像数组,lena图像w=np.zeros((50,50))#全0二维数组,卷积核w[0][0]=1.0#修改参数,调整滤波器w[49][25]=1.
系统 2019-09-27 17:50:25 2239
π是一个无数人追随的真正的神奇数字。我不是很清楚一个永远重复的无理数的迷人之处。在我看来,我乐于计算π,也就是计算π的值。因为π是一个无理数,它是无限的。这就意味着任何对π的计算都仅仅是个近似值。如果你计算100位,我可以计算101位并且更精确。迄今为止,有些人已经选拔出超级计算机来试图计算最精确的π。一些极值包括计算π的5亿位。你甚至能从网上找到包含π的一百亿位的文本文件(注意啦!下载这个文件可能得花一会儿时间,并且没法用你平时使用的记事本应用程序打开。
系统 2019-09-27 17:49:11 2239
目录一、multiprocess模块二、multiprocess.process模块三、process模块介绍3.1方法介绍3.2属性介绍3.3在windows中使用process模块的注意事项四、使用process模块创建进程4.1在Python中启动的第一个子进程4.2join方法4.3查看主进程和子进程的进程号4.4多个进程同时运行4.5多个进程同时运行,再谈join方法(1)4.6多个进程同时运行,再谈join方法(2)4.7通过继承Process
系统 2019-09-27 17:49:09 2239
前言使用python实现设计模式中的单例模式。单例模式是一种比较常用的设计模式,其实现和使用场景判定都是相对容易的。本文将简要介绍一下python中实现单例模式的几种常见方式和原理。一方面可以加深对python的理解,另一方面可以更加深入的了解该模式,以便实际工作中能更加灵活的使用单例设计模式。本文将介绍常见的实现单例模式的几种方式,这里暂不考虑多线程的情况。为了准备该篇博文,之前写了几篇相关的文章依次完整的介绍了相关的概念,下面会在需要的时候给出链接。装
系统 2019-09-27 17:48:26 2239
Python模块EasyGui详细介绍前言:在Windows想用Python开发一些简单的界面,所以找到了很容易上手的EasyGui库。下面就分享一下简单的使用吧。参考的链接:官网Tutorial接下来,我将从简单,到复杂一点点的演示如何使用这个模块。希望能给刚接触easygui的你一点帮助:-)msgBox,ccbox,ynbox#coding:utf-8#__author__='Marksinoberg'#__date__='2016/5/25'#__
系统 2019-09-27 17:48:21 2239
目录一、同步锁1.1多个线程抢占资源的情况1.1.1对公共数据的操作1.2同步锁的引用1.3互斥锁与join的区别二、死锁与递归锁2.1死锁2.2递归锁RLock三、典型问题:科学家吃面3.1死锁问题3.2递归锁解决死锁问题一、同步锁1.1多个线程抢占资源的情况fromthreadingimportThreadimportos,timedefwork():globalntemp=ntime.sleep(0.1)n=temp-1if__name__=='__
系统 2019-09-27 17:47:06 2239
目录一、python线程模块的选择二、threading模块三、通过threading.Thread类创建线程3.1创建线程的方式一3.2创建线程的方式二四、多线程与多进程4.1pid的比较4.2开启效率的较量4.3内存数据的共享问题五、Thread类的其他方法5.1代码示例5.2join方法六、多线程实现socket6.1服务端6.2客户端一、python线程模块的选择Python提供了几个用于多线程编程的模块,包括thread、threading和Qu
系统 2019-09-27 17:47:04 2239