python2中的urllib2改为python3中的urllib.request四种方式对比:python2的get#coding=utf-8importurllibimporturllib2word=urllib.urlencode({"wd":"百度"})url='http://www.baidu.com/s'+'?'+wordrequest=urllib2.Request(url)printurllib2.urlopen(request).read
系统 2019-09-27 17:52:45 1876
简介在实际自动化项目运行过程中,很多时候App可以会出现各种异常,为了更好的定位问题,除了捕捉日志我们还需要对运行时的设备状态来进行截屏。从而达到一种“有图有真相”的效果。截图方法方法1save_screenshot()该方法直接保存当前屏幕截图到当前脚本所在文件位置。driver.save_screenshot('login.png')查看方法1源码:方法2get_screenshot_as_file(self,filename)将截图保留到指定文件路径
系统 2019-09-27 17:51:40 1876
Python中的上下文管理器withexpression[astarget]:with-body上下文管理器是为with语句而生。只要实现了上下文管理器协议__enter__与__exit__,就可以使用with语句。__enter__通常执行一些初始化操作,并且该函数的返回值会赋值给可选的astarget中的target变量。__exit__执行资源清理工作。它接收三个参数,异常类型,异常实例,和异常栈,根据这些异常信息,__exit__可以选择进行相应
系统 2019-09-27 17:51:21 1876
Python之父再发文:构建一个PEG解析器image花下猫语:Python之父在Medium上开了博客,现在写了两篇文章,本文是第二篇的译文。前一篇的译文在此,宣布了将要用PEG解析器来替换当前的pgen解析器。本文主要介绍了构建一个PEG解析器的大体思路,并介绍了一些基本的语法规则。根据Python之父的描述,这个PEG解析器还是一个很笼统的实验品,而他也预告了,将会在以后的系列文章中丰富这个解析器。阅读这篇文章就像在读一篇教程,虽然很难看懂,但是感觉
系统 2019-09-27 17:51:21 1876
Python解释器运行Python代码时,得到的是一个包含Python代码的以.py为扩展名的文本文件,要运行代码,就需要Python解释器去执行.py文件主要有以下几种解释器1.Cpython解释器(解释器是用C语言开发的)2.IPython解释器(基于Cpython之上的一个交互式解释器(>>>orIn[序号]))3.PyPy解释器(对Python代码进行动态编译,执行速度大大提高)4.Jython解释器(运行在Java平台上的python解释器,可以
系统 2019-09-27 17:51:21 1876
美国队长的锅emmmmmmmm.......没错就是他的锅#所需依赖:python3pycharm#print打印print('helloworld!')#注释符号#井号后面灰色的内容是注释,相当于笔记,会被机器忽略#变量和值#n是变量,100是值,等号的作用是赋值#n相当于高中数学的xyz,只不过xyz的值只能是数字,变量的功能要更强大n=100m='hello'print(n)print(m)#数据类型,这里只讲两个,剩下的需要同学自己去系统地学习了#
系统 2019-09-27 17:50:56 1876
注释PIL是python的一个图像处理库,功能非常强大,可以实现图片的格式转换、旋转、裁剪、改变尺寸、像素处理、图片合并等等操作。PIL已经更名为pillow所以在终端输入pip3installpil会报错,而应该输入pip3installpillow进行安装。源码fromPILimportImagedefImage_PreProcessing():#待处理图片存储路径im=Image.open('UnprocessImage.jpeg')#Resize图
系统 2019-09-27 17:50:56 1876
使用threading.Event可以实现线程间相互通信,之前的Python:使用threading模块实现多线程编程七[使用Condition实现复杂同步]我们已经初步实现了线程间通信的基本功能,但是更为通用的一种做法是使用threading.Event对象。使用threading.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到线程对象中,Event默认内置了一个标志,初始值为False。一旦该线程通过wait()方法进入等待状态
系统 2019-09-27 17:50:54 1876
前言:为了获取一定高级操作,如:微信模板消息(xiao,xin)推送,把消息推送给用户,或者是获取用户授权信息都需要用到accesstoken,有效期为两个小时?过了两个小时怎么办?重新获取,来,代码撸起走,啥女朋友没有?获取小程序对应的accesstokendefget_wx_token():url="https://api.weixin.qq.com/cgi-bin/token?"try:respone=requests.get(url,params=
系统 2019-09-27 17:50:53 1876
2.快速排序2.1算法思想快速排序是对冒泡排序的一种改进。通过一次排序(设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,所有比它大的数都放到它右边,这个过程称为一次快速排序)将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序的
系统 2019-09-27 17:49:43 1876
环境spyder(python3.6)代码:fromflaskimportFlask,requestimportjsonimportsysdefaultencoding='utf-8'importloggingdeftt(name,age):result_str="%s今年%s岁"%(name,age)returnresult_strapp=Flask(__name__)@app.route("/test_1.0",methods=["GET"])defc
系统 2019-09-27 17:49:36 1876
分支结构的应用场景迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后我们要根据玩家得到分数来决定究竟是进入第二关还是告诉玩家“GameOver”,这里就会产生两个分支,而且这两个分支只有一个会被执行,这就是程序中分支结构。类似的场景还有很多,给大家一分钟的时间,你应该可以想到至少5个以上这样的
系统 2019-09-27 17:49:23 1876
问题背景:源于公司的原来的代码是python2开发的,后来改为python3开发,设计到的property的用法有点不一样直接上代码公司原来的python2的代码classLineItem:def__init__(self,description,weight,price):self.description=descriptionself.__weight=weightself.price=price@propertydefweight(self):ret
系统 2019-09-27 17:49:16 1876
文章目录160.相交链表(链表)232.用栈实现队列69.x的平方根(二分法)215.数组中的第K个最大元素(快排)347.前K个高频元素(桶排序)378.有序矩阵中第K小的元素(排序)1051.高度检查器(排序)17.电话号码的字母组合(递归)241.为运算表达式设计优先级(分治)455.分发饼干(贪心)160.相交链表(链表)把两个链表连起来,不断遍历,相等停下!classSolution(object):defgetIntersectionNode(
系统 2019-09-27 17:49:15 1876
9.5守护进程主进程创建守护进程其一:守护进程会在主进程代码执行结束后就立即终止其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError:daemonicprocessesarenotallowedtohavechildren注意:进程之间是互相独立的,主进程代码运行结束,守护进程随即终止p.daemon:默认值为False,如果设为True,代表p为后台运行的守护进程,当p的父进程终止时,p也随之终止,并且设定为True后,p不能创建
系统 2019-09-27 17:48:24 1876