自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Python HTTP协议

一HTTP协议介绍1.HTTP协议是超文本传输协议。超文本是超级文本的缩写,是指超越文本限制或者超连接,比如图片/视频/音乐/超链接等属于超文本。传输HTTP协议格式的数据是基于TCP传输协议的,发送数据之前要先建立连接。2.作用它规定了浏览器和Web服务器通信数据的格式,也就是说浏览器和Web服务器需要使用http协议。二.URL的介绍URL表示的统一资源定位符,通俗理解就是网络资源地址,即网址。协议部分:https://,http://, ftp://域名部分:news.163.co

2021-03-14 22:41:11 451

原创 Python TCP协议

一、介绍1.ip地址:ip地址就是标识网络中设备的一个地址。ip地址表现形式分为IPv4和IPv6。2.端口:知名端口号:众所周知,范围从0到1023.·这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,25–SMTP服务,80–HTTP服务动态端口号:范围1024-65535.一般由开发应用程序使用。·如果程序猿开发的程序没有设置端口号,操作系统会在动态端口号这个范围随机生成一个给开发的应用程序使用。·当运行一个程序默认会有一个端口号,当这个程序退出时,所占用

2021-03-14 20:26:42 440

原创 Python 线程/互斥锁/死锁/线程与进程对比

一、介绍在Python中,想要实现多任务除了使用进程,还可以使用线程来完成,线程是实现多任务的另外一种方式。概念:线程是进程中执行代码的一个分支,每个执行分支(线程)要想工作执行代码需要cpu进行调度,也就是说线程是cpu调度的基本单位,每个进程至少都有一个线程,而这个线程就是我们通常说的主线程。程序启动默认会有一个主线程,程序猿自己创建的线程可以成为子线程,多线程可以完成多任务。1.导入线程模块import threading2.线程类Thread参数说明Thread([group[, t

2021-03-10 17:26:50 204

原创 Python 进程

一·介绍进程:实现多任务的一种方式。一个正在运行的程序或软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。一个程序运行后至少有一个进程,一个进程默认有一个线程,进程里面可以创建多个线程,线程是依附在进程里面的,没有进程就没有线程二·多进程的使用1.导入进程包import multiprcoessing2.Process进程类说明Process([group[,target[,name[,args[,kw

2021-03-09 16:37:05 132

原创 Python 异常

语法1try:可能发生错误的代码except (异常类型,异常类型2)as e:如果出现异常执行的代码注意:1.如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常2.一般try下方执行一行尝试执行的代码3.捕获多个异常时,可以放在except后面,并使用元祖的方式书写4.捕获所有异常用Exception,是所有程序异常的父类语法2try:可能发生错误的代码except Exception as e:如果出现异常执行的代码else:如果没有异常要执行的代码

2021-03-05 17:01:59 71

原创 Python 类属性和实例属性/类方法与静态方法

一.设置和访问类属性·类属性就是类对象所拥有的属性,它被该类的所有实例对象所共有·类属性可以使用类对象或者实例对象访问优点:1.记录的某项数据始终保持一致时,则定义类属性2.实例属性要求每个对象为其开辟一份内存空间来记录数据,而类属性为全类所共有,仅占一份内存,更加节省内存空间。修改类属性类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了一个实例属性。class Cat(object): weight = 20haha = Cat()xi

2021-03-05 16:04:37 405 1

原创 Python 面向对象编程 多态

·多态传入不同的对象,产生不同的效果多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果好处:调用灵活,更容易编写出通用的代码,做出通用的编程,以适应需求的不断变化。实现步骤:1.定义父类,并提供公共方法2.定义子类,并重写父类方法3.传递子类对象给调用者,可以看到不同子类执行效果不同class Dog(object): def work(self): print('指谁咬谁')class WangcaiDog(Dog

2021-03-03 18:17:17 280 2

原创 Python 面向对象编程 继承

继承子类默认继承父类的所有属性和方法子类可以重写父类的属性和方法注:在python中,所有类默认继承object类,object类是顶级类或基类,其他子类叫做派生类。单继承:继承一个父类1.多继承:一个类同时继承多个父类(当一个类有多个父类时,默认使用第一个父类的同名属性和方法)class Master(object): def __init__(self): self.gongfu = '[师傅的蛋糕配方]' def make_cake(self): print(f'运用{self

2021-03-03 18:04:50 185

原创 Python 面向对象编程 封装

面向对象编程的三大特性·封装将属性和方法书写到类的里面的操作即为封装封装可以为属性和方法添加私有权限·继承子类默认继承父类的所有属性和方法子类可以重写父类的属性和方法·多态传入不同的对象,产生不同的结果一.封装1.init()方法的作用,初始化对象在创建一个对象时默认被调用,不需要手动调用。init(self)中的self参数不需要开发者传递,python解释器会自动把当前的对象传递过去。class Computer(self,width,height) def __init__

2021-03-02 20:48:39 91

原创 python 文件操作

一. 打开文件open(name,mode)name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)mode:设置打开文件的模式(访问模式):只读,写入,追加等#打开f = open(text.txt,'w')#写入f.write('abc')#关闭f.close()|模式|描述 |r:以只读方式打开文件。文件指针将会放在文件的开头。默认模式。rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+:打开一个文件用于读写。文件指针将会放在

2021-02-24 22:19:08 81

原创 python 高阶函数

一·高阶函数把函数作为参数传入abs() 求绝对值round() 四舍五入例子:任意两个数字,按照指定要求整理数字后进行求和计算一般方法def add_num(a,b): return abs(a) + abs(b)result = add_num(-3,1)print(result) #3 高阶函数方法:增加灵活性,传入任意函数def add_num(a,b,f) return f(a) + f(b)print(add_num(10,-20,abs)) #30pri

2021-02-21 11:49:13 206

原创 python lambda基础

一.介绍:lambda,如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化语法:lambda 参数列表:表达式lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用。lambda表达式能够接收任何数量的参数,但只能返回一个表达式的值def fn1(): return 100print(fn1)print(fn1())#lambda表达式fn2 = lambda:100print(fn2). #输出的是此lambda的内存地址print(fn2(

2021-02-21 11:29:09 152

原创 python递归基础

递归是一种编程思想,如果要遍历一个文件夹下面的所有文件,通常会使用递归来实现。特点:·函数内部自己调用自己·必须有出口例子:3以内数字相加def sum_number(num): #如果是1,直接返回1 -- 出口 if num == 1: return 1 #如果不是1,重复执行累加并返回结果 return num + sum_number(num-1)sum_result = sum_number(3)print(sum_result) #6分析:6 = 3+2以内

2021-02-21 11:08:33 115

原创 python推导式

一.列表推导式(列表生成式)作用:用一个表达式创建一个有规律的列表或控制一个有规律列表while 循环实现list1 = []i = 0while i < 10: list1.append(i) i += 1print(list1)for循环实现list = []for i in range(10): list.append(i)print(list)列表推导式实现 **list = [i for i in range(10)]print(list)例子:创建0

2021-02-20 15:14:53 142

原创 python运算符及公共方法基础

一.运算符运算符 描述 支持的容器类型 合并 字符串,列表,元组 复制 字符串,列表,元组in 元素是否存在 字符串,列表,元组,字典not in 元素是否不存在。 字符串,列表,元组,字典1.合并str1 = 'a'str2 =

2021-02-20 14:48:54 90

原创 python 集合的增删改查

集合创建空集合用set()。因为{}用来创建字典了。主要作用是去重,保存不重复的数据一.增加数据1.add()s1 = {10,20,30,10}s1.add(40)s1.add(20)print(s1)#{10,20,30,40}因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。2.update(),追加的数据是序列s1 = {10,20,30}s1.update(40) #报错s1.update([40,50]) #{10,20,30,

2021-02-20 14:30:48 707

原创 python 字典的增删改查

字典的特点:·可变类型·大括号·数据为键值对形式出现·各个键值对用逗号隔开一.增/改dict1 = {'name': 'lily', 'age': '18', 'id' : '999'}dict1['gender'] = '女'print(dict1)#{'name': 'lily', 'age': '18', 'id' : '999', 'gender': '女'}注:如果key存在则修改key对应的值,如果不存在则新增此键值对二.删1.del()/del:删除字典或删除字典中指

2021-02-20 12:02:06 245

原创 python 元组的查找/修改

元组:一个元组可以存储多个数据,元祖内的数据是不能修改的。特点:小括号,逗号隔开。如果定义的元组只有一个数据,后面增加逗号,例如 t1 = (1, )一.元组的查找1.按下标查找数据t1 = ('a','b','c')t1[0]#'a'2.index():查找某个数据,如果数据存在返回对应的下标,否则报错t1 = ('a','b','c')t1.index('a')#03.count():统计某个数据在当前元组出现的次数t1 = ('a','b','c','a')t1.cou

2021-02-20 11:39:27 2909

原创 python列表的查找/增加/删除/排序/复制

一.列表的查找1.index():找到返回个数语法:列表序列.index(数据,开始位置下标,结束位置下标)list = ['a','b','c']list.index('b',0,2)#12.count():统计制定数据在当前列表中出现的次数list = ['a','b','c','a']list.count('a')#2len():访问列表长度,即列表中数据的个数list = ['a','b','c','a']len(list)#44.in:判断指定数据在某个列表中

2021-02-20 11:28:37 565

原创 python字符串的查找/修改/判断

一·字符串的查找1.find():检测某个字串是否包含在这个字符串中,如果在返回这个字串开始的位置下标,否则返回-1。(下标即索引)语法:字符串序列.find(子串,开始位置下标,结束位置下标)`str = “``hello world and python”print(str.find(‘python’))`2.index()与find用法一致,不同的是:如果查找不到子串,则会报错(ValueError)3.Count()语法与find一致,返回查找结果是数字,找到一个返回1,找到2个返

2021-02-18 23:09:36 697 2

原创 用pip安装第三包报错 Could not find a version that satisfies the requirement pytest (from versions: )

Could not find a version that satisfies the requirement pytest (from versions: )No matching distribution found for pytest解决办法:主要是国内网络问题,所以使用豆瓣源安装pip install 包名 -i http://pypi.douban.com/simple/ --t...

2019-03-27 21:11:41 7282 2

原创 Failed to create provisioning profile. The app ID "com.facebook.WebDriverAgentRunner" cannot be regi

报错,id不唯一1.搜索Product Bundle Identifier改成自己的点击BuildSettings查看更改是否完成2.更改WebDriverAgentRunner,双击要修改的字段3.依此类推,将其他包名都改掉,再run一下...

2019-03-13 21:53:52 6949 4

原创 appium端口被占用

lsof -i:4723查找被占用端口ps -ef | grep node | xargs kill -9 杀掉进程

2019-03-06 20:59:03 1085

原创 Unable to automate Chrome version because it is too old for this version of Chromedriver.

进入提示网址https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md找到自己Chrome(我图片中提示的是51.0.2704.91),选择51或者以下(如果每没有对应版本,则找以下的,比如没有44版本的,就找43),点击v.23(link)下载相对应的型...

2019-03-06 20:57:05 573

原创 Appiumios安装模拟器时WDA报错

在终端打开,输入命令appium -g appiumios.log打开appium-点击

2019-03-04 14:41:11 907

原创 UiAutomator2运行报错

将环境变量配置一下,mac把ANDROID_HOME的变量export一下执行source ~/.bash_profile再执行一下就可以了

2019-03-01 16:39:36 3075

原创 vmstat: command not found

[TOC](vmstat: command not found)欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点...

2019-02-21 14:25:29 1399

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除