搜索到与相关的文章
Python

Python:线程为什么搞个setDaemon

前言使用Python都不会错过线程这个知识,但是每次谈到线程,大家都下意识说GIL全局锁,但其实除了这个老生常谈的话题,还有很多有价值的东西可以探索的,譬如:setDaemon()。线程的使用与存在的问题我们会写这样的代码来启动多线程:importtimeimportthreadingdeftest():whileTrue:printthreading.currentThread()time.sleep(1)if__name__=='__main__':t

系统 2019-09-27 17:54:09 2424

Python

Python里的经典算法详解_冒泡排序&选择排序

文章目录1.冒泡排序(1)基本逻辑(2)算法解析(3)完整版算法1.从左向右比较,找最大值2.从左向右比较,找最小值3.优化方案(3)时间复杂度(4)冒泡排序的图形演示:2.选择排序(1)基本逻辑(2)算法分步解析1.从最左边找最小值的索引2.从最右边找最大值的索引(3)完整算法1.从左到右查找2.从右向左查找(4)时间复杂度(5)选择排序演练1.冒泡排序(1)基本逻辑冒泡排序(英语:BubbleSort)是一种简单的排序算法。它重复地遍历要排序的数列,一

系统 2019-09-27 17:53:20 2424

Python

python中selenium操作下拉滚动条的几种方法汇总

UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等;但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了。比如下面这样一个网页,需要进行拖动下拉条后才能通过selenium找到密码输入框的元素,在python中有几种方法解决这种问题,简单介绍下,给需要的人:方法一)使用js脚本直接操作,方法如下:js="varq=document.getElementById('id').scroll

系统 2019-09-27 17:52:48 2424

Python

简单了解python中对象的取反运算符

取反运算符的原理:1.对3取反:(取4位二进制)①化为二进制:3→0011②对二进制结果取反:0011→1100③对结果先取反再加1:1100→(~1100+1)→0011+1→0100④对符号取反并化为十进制:-0100→-42.对-4取反:①化为二进制:4→0100②对二进制结果取反:0100→1011③对结果先加1再取反:1011→~(1011+1)→~1100→0011④对符号取反并化为十进制:+0011→33.从结果来说:取反结果为:原数+1再变

系统 2019-09-27 17:51:41 2424

Python

PyCharm配置autopep8(自动格式化Python代码)

1.关于PEP8PEP8,StyleGuideforPythonCode,是Python官方推出编码约定,主要是为了保证Python编码的风格一致,提高代码的可读性。官网地址:https://www.python.org/dev/peps/pep-0008/2.关于Autopep8Autopep8是自动将Python代码格式化为符合PEP8风格的工具。它使用pycodestyle工具来确定代码的哪些部分需要被格式化。Autopep8能够修复大部分pycod

系统 2019-09-27 17:50:44 2424

Python

python 属性搜索优先级和descriptor

属性搜索优先级和descriptor#########################定义#########################数据描述符classDataDesc(object):def__init__(self,*args,**kwargs):passdef__get__(self,instance,cls):print(instanceisNone)return'DataDesc'def__set__(self,instance,valu

系统 2019-09-27 17:50:41 2424

Python

python openpyxl使用方法详解

openpyxl特点openpyxl(可读写excel表)专门处理Excel2007及以上版本产生的xlsx文件,xls和xlsx之间转换容易注意:如果文字编码是“gb2312”读取后就会显示乱码,请先转成Unicode1、openpyxl读写单元格时,单元格的坐标位置起始值是(1,1),即下标最小值为1,否则报错!tableTitle=['userName','Phone','age','Remark']#维护表头#ifrow<1orcolumn<1:#

系统 2019-09-27 17:49:39 2424

Python

Python中*args和**kwargs的区别

原文链接:https://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html注:《python核心编程第2版》的11.6可变长度的参数---章节中有详细介绍。一、*args的使用方法*args用来将参数打包成tuple给函数体调用例子一:deffunction(*args):print(args,type(args))function(1)输出结果以元组的形式展示:例子二:deffunction(x,y,*args)

系统 2019-09-27 17:48:25 2424

Java

C/C++、Java、Go、Python总结对比10-类的总结对比-类的简单

现代编程语言基本上都是面向对象的语言,而这些语言基本上都会使用类体现该思想。本节主要介绍各个语言类的简单定义及语法,复杂的内容后续慢慢介绍。c的写法c没有类的定义,可以使用结构体间接实现,这里不做介绍。c/c++的写法定义头文件person.h//定义头文件classCPerson{public://定义可以被任意实体访问变量intage;//声明成员变量charname[3];intgetAge();//声明成员函数voidsetAge(intsAge)

系统 2019-09-27 17:48:11 2424

Python

使用python编写脚本获取手机当前应用apk的信息

前提是已设置ANDROID_HOME环境变量,使用aapt工具获取apk的信息,保存至脚本所在目录下的PackageInfo.txt文件中:importosimporttempfileimportretempFile=tempfile.gettempdir()defget_aapt():if"ANDROID_HOME"inos.environ:rootDir=os.path.join(os.environ["ANDROID_HOME"],"build-to

系统 2019-09-27 17:38:37 2424