09 2019 档案
摘要:工程师的四大基础技能:数据库、linux、网络协议、测试工具,不管是刚入门还是已经工作多年,这几个方向都是要掌握的。今天我们再讲一下工程师必须要掌握的linux命令。 工程师需要掌握linux系统的必要性? 由于Linux在服务器领域应用非常广泛,有很多开源和成熟的软件,目前大多数的应用后台都是部署
阅读全文
摘要:Windows服务 1 -- 启动MySQL 2 net start mysql 3 -- 创建Windows服务 4 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) 连接与断开服务器 1 mysql -h 地址 -P 端口 -u 用户名
阅读全文
摘要:面试的时候,遇到这样的提问,很多人的都会感觉脑子一下一片空白,或者星星点点,不知道从何说起。 一方面不知道面试官问这个问题的意图是什么?也不知道他想得到的答案是什么? 更加不知道该从哪些方面来回答。 作为一个测试行业从业8年有余的测试人员,我想跟大家分享一些我的经验和看法。 首先,毋庸置疑的是,面试
阅读全文
摘要:Q:1、你的测试职业发展是什么? A:测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断更新自己改正自己,做好测试任务。 Q:2、你认为测试人员需要具备哪些素质? A:做
阅读全文
摘要:1、使用redis有哪些好处? 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 支持丰富数据类型,支持string,list,set,sorted set,hash 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么
阅读全文
摘要:一、数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的。 虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此。 1 命令就是一个程序,按回车就会执行(这个只是在windows情况下) 2 tasklist 查看进程 3 tasklist | findstr py...
阅读全文
摘要:一、互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理。 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行的修改,没错,速度是慢了,牺牲了速度而保证了数据安全。 1.上厕所的小例子:你上厕所的时候肯定得锁门吧,有人来了看见门锁着,就会在外面等着,等你吧门开开出来的时候,下一个人才去上厕所。 1 fro...
阅读全文
摘要:一、multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程。python中提供了非常好的多进程包multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行功能(函数),该模块与多线程模块threading的编程接口类似。 multiprocessing的功能众多:支持子进程、通信和共享数据、...
阅读全文
摘要:背景知识 顾名思义,进程即一个软件正在进行的过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老的也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须先了解操作系统。详见博客点击进入。 须知的理论基础: 1 #一 操作系统的作用: 2 1:隐藏丑陋复杂的硬件接口,提供良...
阅读全文
摘要:须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 如果发生了:1.可能是在客户端已经粘了 2.客户端没有粘,可能是在服务端粘了 首先需要掌握一个socket收发消息的原理 应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可见的,因此TCP协议是面向流的协议,这也是容易出现粘包问题的原因。(因为TCP是流式协议,不知道啥时候...
阅读全文
摘要:一、网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系:我们用socket就是为了完成C/S架构的开发 osi七层 引子: 须知一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩...
阅读全文
摘要:一、网络基础 1.网络指的是什么? 计算机与计算机之间通过物理链接介质(网络设备)连接到一起。 计算机与计算机之间基于网络协议通信(网络协议就相当于计算机界的英语) 2.osi七层协议: 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行常见物理设备: 3.五层模型讲解 物理层:由来:计算机和计算机之间要想通信,就必须接入internet,言外之意就是计...
阅读全文
摘要:知识预览 1. 一. python 安装 2. 二. pip安装 一. python 安装 1. 下载安装包 1 https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi # 2.7安装包 2 3 https://www.pyt
阅读全文
摘要:一、python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。 最新的T...
阅读全文
摘要:一、集合的作用 知识点回顾:可变类型是不可hash类型,不可变类型是可hash类型 作用:去重,关系运算 定义:可以包含多个元素,用逗号分割,集合的元素遵循三个原则: 1.每个元素必须是不可变类型(可hash,可作为字典的key) 2.没有重复的元素 4.无序 注意集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无需纠结集合...
阅读全文
摘要:字典常用方法 1 字典的表示方法: 2 3 info_dic={'name':'haiyna','age':18,'sex':'female'} 4 # 常用操作: 5 # 6 1.存/取 7 info_dic={'name':'egon','age':18,'sex':'male'} 8 print(info_dic['name11111111'])#找不...
阅读全文
摘要:1 #为何要有元组,存放多个值,元组不可变,更多的是用来做查询 2 t=(1,[1,3],'sss',(1,2)) #t=tuple((1,[1,3],'sss',(1,2))) 3 # print(type(t)) 4 5 6 # #元组可以作为字典的key 7 # d={(1,2,3):'egon'} 8 # print(d,type(d),d[(1,2...
阅读全文
摘要:一、列表 作用:多个装备,多个爱好,多门课程,多个女朋友等 定义:[]内可以有多个任意类型的值,逗号分隔 以下是列表的常用操作: 1 l=[1,2,3] #l=list([1,2,3]) 2 # print(type(l)) 3 4 #pat1===》优先掌握部分 5 # 索引:l=[1,2,3,4,5] 6 print(l[0]) 7 ...
阅读全文
摘要:1.bin()函数将十进制转换成而进制 2.oct()函数将十进制转换成八进制 3.hex()函数将十进制转换成十六进制 十六进制表示:0-9 a b c d e f 4.数字类型的特性: 只能存放一个值 一经定义,不可更改 直接访问 分类:整型,布尔,浮点,复数 5.字符串类型 引号包含的都是字符串类型 S1='hello wor...
阅读全文
摘要:1、数字类型 2、字符串 3、列表 4、元组 5、字典 6、集合
阅读全文
摘要:切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。 格式: [start:end:step] [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串 [start:] 从start 提取到结尾 [:end] 从开头提取到end - 1 [start:e...
阅读全文
摘要:一、运算符 计算机可以进行的运算有很多种,不只是加减乘除,它和我们人脑一样,也可以做很多运算。 种类:算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算,今天我们先了解前四个。 算术运算: a=10,b=20 赋值运算: 比较运算: 逻辑运算: 二、While 循环 为什么要用while循环呢?打个比方来说吧,就像猜数字的游戏,要想让用户猜,就得一次次的猜吧,不能猜一次就...
阅读全文
摘要:1.可变数据类型:在id不变的情况下,value可改变(列表和字典是可变类型,但是字典中的key值必须是不可变类型) 2.不可变数据类型:value改变,id也跟着改变。(数字,字符串,布尔类型,都是不可类型) 分类: python相关
阅读全文
摘要:1.内存和硬盘都是用来存储的。 CPU:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的内容也都是存放在内存中的,断电后数据就丢失了。因而需要保存在硬盘上,点击保存按钮或快捷键,就把内存中的数据保存到了硬盘上。在这一点上,我们编写的py文件(没有执行时),跟编写的其他文件没有...
阅读全文
摘要:一、文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 r模式,默认模式,文件不存在则报错 w模式,文件不存在则创建,文件存在则覆盖 a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写日志文件的时候常用),追加模式是一种特殊的写模式 b(rb,wb,ab)模式:不用加encoding:utf-8 ...
阅读全文
摘要:①从参数方面来讲:map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组)。其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数。reduce()函数:reduce() 第一个参数是函数,第二个是 序列(列表或元组)。但是,其函数必须接收两个参数。②从对传进去的数值作用来讲:map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数...
阅读全文
摘要:Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器) 1、初始函数 2、函数嵌套及作用域 3、装饰器 4、迭代器和生成器 6、内置函数 7、递归函数 8、匿名函数
阅读全文
摘要:一、匿名函数:也叫lambda表达式 1.匿名函数的核心:一些简单的需要用函数去解决的问题,匿名函数的函数体只有一行 2.参数可以有多个,用逗号隔开 3.返回值和正常的函数一样可以是任意的数据类型 二、匿名函数练习 1.请把下面的函数转换成匿名函数 1 2 def add(x,y) 3 return x+y 4 add() 5 6 结果: 7...
阅读全文
摘要:一、递归的定义 1.什么是递归:在一个函数里在调用这个函数本身 2.最大递归层数做了一个限制:997,但是也可以自己限制 验证997 1 def foo(): 2 print(n) 3 n+=1 4 foo(n) 5 foo(1) 3.最大层数限制是python默认的,可以做修改,但是不建议你修改。(因为如果用997层递归都没有解决的问题要么是不适合...
阅读全文
摘要:1 内置函数操作 2 #!usr/bin/env python 3 # -*- coding:utf-8 -*- 4 # 1.locals()和globals() 5 # def func(): 6 # x=1 7 # y=2 8 # print(locals()) 9 # print(globals()) 10 # func(...
阅读全文
摘要:一、可迭代协议:可以被迭代要满足要求的就叫做可迭代协议。内部实现了__iter__方法 iterable:可迭代的------对应的标志 什么叫迭代?:一个一个取值,就像for循环一样取值 字符串,列表,元组,集合,字典都是可迭代的 二、迭代器协议:内部实现了__iter__,__next__方法 迭代器大部分都是在python的内部去使用的,我们直接拿来用就行了 迭代...
阅读全文
摘要:一、简单的装饰器 1.为什么要使用装饰器呢? 装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展 装饰器的本质:就是一个闭包函数 那么我们先来看一个简单的装饰器:实现计算每个函数的执行时间的功能 1 import time 2 def wrapper(func): 3 def inner(): 4 star...
阅读全文
摘要:1.三元运算if条件成立的结果 if 条件 else 条件不成立的结果例如: a=20 b=10 c=a if a>b else b print(c) 2.命名空间 全局命名空间:创建的存储“变量名与值的关系”的空间叫做全局命名空间 局部命名空间:在函数的运行中开辟的临时的空间叫做局部命名空间 内置命名空间:内置命名空间中存放了python解释器为我们提供的名字:input,pr...
阅读全文
摘要:1初识函数 一、为什么要使用函数? 1.避免代码重用 2.提高代码的可读性 二、函数的定义与调用 1. def 函数名(参数1,参数2) ''' 函数注释''' print('函数体') return 返回值 定义:def关键字开头,空格之后接函数名和圆括号,最后还要加一个冒号。 def是固定的,不能变。 函数名:函数名是包含字母,数字,下划...
阅读全文
摘要:1.为什么要使用函数? 减少代码的冗余2.函数先定义后使用(相当于变量一样先定义后使用)3.函数的分类: 内置函数:python解释器自带的,直接拿来用就行了 自定义函数:根据自己的需求自己定义的函数 def func(): #函数名打印出来的是内存地址 '''注释''' 函数体4.函数定义都干了些什么事? 只检测语法,不执...
阅读全文
摘要:一、函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个额方法,用对象去调用 举例说明: 1 class Foo(object): 2 def __init__(self): 3 self.name="haiyan" 4 def func(self): 5 print(self.n...
阅读全文
摘要:Counter目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。 创建 下面的代码说明了Counter类创建的四种方法: Counter类的创建 1 >>> c = Counter() # 创建一个空的Co...
阅读全文
摘要:一、认识模块 什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.py文件) 2.已被编译为共享库二和DLL的C或C++扩展 3.包好一组模块的包 4.使用C编写并连接到python解释器的内置模块 为何要使用莫模块? ...
阅读全文
摘要:一、time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=8, tm_min=4, tm_sec=32, tm_wday=1, tm_yday=220, tm_isdst=0)像这样的就是结构...
阅读全文
摘要:一、常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等。 那么什么是摘要算法呢?摘要算法又称为哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 注意:摘要算法不是一个解密算法。(摘要算法,检测一个字
阅读全文
摘要:1 import os 2 # 1.切换路径============= 3 d = os.getcwd() #获取当前的工作路径 4 os.chdir('D:\\')#目录的切换 5 print(os.getcwd()) 6 # (切换过去怎么回来呢?再chdir一下就回来了) 7 os.chdir(d) 8 print(os.getcwd()) 9 10...
阅读全文
摘要:模块,用一砣代码实现了某个功能的代码集合。 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块。 如:os 是系统相关的模块;file是文件操作相关的模块 模块分为三种: 自定义模块 ...
阅读全文
摘要:一、模块 1.import.... 一个py文件就可以作为一个模块 模块的导入:直接导入文件的名字,不需要带着后缀 模块中的函数调用:模块名.函数名() 导入模块的时候做了三件事:1.首先开辟了一个新的命名空间my_moudle 2.执行了my_moudle内的代码 3.将my_moudle里面的名字和命名空间绑定在一起了 注意:模块在一个程序中...
阅读全文
摘要:1.包A和包B下有同名模块也不会冲突,如A.a与B.a来自俩个命名空间 2.常见目录结构 1 import os 2 os.makedirs('glance/api') 3 os.makedirs('glance/cmd') 4 os.makedirs('glance/db') 5 l = [] 6 l.append(open('glance/__init__.py',...
阅读全文
摘要:一、创建类的执行流程 二、元类的认识 什么是元类呢?在Python3中继承type的就是元类 三、元类的示例 方式一: 1 # 方式一 2 class MyType(type): 3 '''继承type的就是元类''' 4 def __init__(self,*args,**kwargs): 5 print("MyType创建的对象...
阅读全文
摘要:一、内容 保证一个类只有一个实例,并提供一个访问它的全局访问点 二、角色 单利 三、使用场景 当类只有一个实例而且客户可以从一个众所周知的访问点访问它时 比如:数据库链接、Socket创建链接 四、优点 对唯一实例的受控访问 单利相当于全局变量,但防止了命名空间被污染 与单利模式功能相似的概念:全局
阅读全文
摘要:程序中难免会出现错误,而错误分为两种 1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误:(逻辑错误),比如用户输入的不合适等一系列错误 那什么是异常呢? 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下。异常发生之后,异常
阅读全文
摘要:一、静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静
阅读全文
摘要:什么是封装呢?(封装不是单纯意义的隐藏,其实它还是可以查看的) 就是把一些不想让别人看的给隐藏起来了 封装数据:目的是保护隐私 功能封装:目的是隔离复杂度 如果用了私有的,在类的外部,无法直接使用变形的属性,但是在类的内部可以直接使用 1 封装: 2 体现在两点: 3 1、数据的封装(将数据封装到对象中) 4 ...
阅读全文
摘要:一、复习 面向对象 1.类:具有相同属性和方法 的一类事物 类名可以实例化一个对象 类名可以调用类属性,(静态属性 和(方法)动态属性) 2.对象:也就是实例 对象名:调用对象属性 调用方法 3.什么叫抽象? 从小到大的过程 4.组合-----什么有什么的关系(将一个类的对象当做另一个类的属性) 5.继承...
阅读全文
摘要:一、组合 组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合也就是说:一个类的属性是另一个类的对象,就是组合 例子: 圆环是由两个圆组成的,圆环的面积就是外圆的面积减去内圆的面积。圆环的周长就是内圆的周长加上外圆的周长,这个时候,我们首先设计一个圆形类,计算一个圆的面积和圆的周长。然后在‘圆环类’组合圆形的实例作为自己的属性来用(这样的目的就...
阅读全文
摘要:面向对象的三大特性: 继承 继承和组合 继承进阶 封装 封装(有待完善) 多态 多态 归类 : Python学习
阅读全文
摘要:一、面向过程:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点:极大地降低了写成学的复杂度,只需要顺着执行的步骤,堆叠代码即可 缺点:一套流水线或者流程就是用来解决一个问题,如果修改代码就都得改变 二
阅读全文
摘要:Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由
阅读全文