![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 53
echo6120
这个作者很懒,什么都没留下…
展开
-
python-并发线程的同步和互斥
一.什么是并发?在操作系统中,指一个时间段内有几个程序都处于已启动到运行结束之间的状态,并且这几个程序都是在同一个处理机上运行的,但任一个时间点却只有一个程序在处理机上执行。注意并发与并行并不是同一个概念。并发是指一个时间段内同时运行,表示的 是一个区间,而并行是指在同一个时间点上都在运行,是一个点,并且并发在同一时间点上只能有一个程序在运行。 在实际应用中,多个线程往往会共享一些数据(如:内存堆栈、串口、文件等 ),并且线程间的状态和行为都是互相影响的。并发线程的两种关系:同步与互斥。.原创 2021-01-12 15:03:16 · 731 阅读 · 1 评论 -
简单介绍python的垃圾回收机制
如果不垃圾回收会发生什么问题?--内存泄漏不再使用的内存会被一种称为垃圾回收的机制释放python 的垃圾回收机制实际上是 一个引用计数器+一个循环垃圾收集器 来工作;垃圾回收器是一段独立的代码,用来寻找引用计数为0 的对象;垃圾回收器还负责检查虽然引用计数>0但也应该被销毁的对象;----循环引用循环引用发生在有至少两个对象互相引用,垃圾回收器也会清理未引用的循环python解释器会跟踪对象的引用技术,垃圾回收器负责释放内存一.关于引用计数python内部记录所有使用原创 2021-01-10 20:31:49 · 248 阅读 · 0 评论 -
【python设计模式】python设计模式之构建者模式
当我们想要创建一个由多个部分构成的对象,而且他们的构建需要一步接一步的地完成,只有当各个部分都创建好,这个对象才算完整。 -- 这正是 建造者设计模式的用武之地。比如建造一个抽象的类Builder,定义画六个身体部位的方法,每画一种人,就新建一个继承Builder的类,这样新建的类就必须要实现Builder的所以方法,这里主要运用了抽象方法的特性,父类定义了几个抽象的方法,子类必须要实...原创 2020-04-30 11:49:02 · 304 阅读 · 0 评论 -
【python设计模式】python设计模式之工厂模式
本质:根据传入参数的不同,返回对应的不同对象(类似鸡生蛋),方便造对象,但不做任何动作。工厂模式的目的是为了解耦:1.把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的方法,而至于B的实例化,就交给工厂类。2.工厂模式可以降低代码重复。如果创建对象B的过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。我们可以这些...原创 2020-04-30 11:48:32 · 253 阅读 · 0 评论 -
【python算法】图的遍历与最小路径
数据结构中,图的应用场景非常广泛,与我们的生活息息相关,在基于图做的应用中,比较典型的有:在交通规划中的最小生成树,用于导航的最短路径等。比如下图这里,我们介绍邻接表表示方法。在表示图的时,我们一般使用如下的两个实例属性,表示邻接表的字典nodeNeighbors,标志是否已访问的字典visited。针对如下的图:来实现广度优先遍历以及深度优先遍历:简述思想:1...原创 2020-04-16 18:05:10 · 1403 阅读 · 0 评论 -
【接口自动化框架】测试数据部分增加替换变量功能
我们的接口自动化框架的测试数据放到json文件中,但是有些参数是动态生成的;解决这个问题我想到两个解决方法:1,通过测试case的文件中生成变量后再赋值给json文件中的变量(缺点:重复代码多)2,在json文件中直接引用函数,在case读取json文件时,运行函数更改变量(此文介绍这种方法)...原创 2020-04-07 18:48:18 · 715 阅读 · 1 评论 -
【python-requests】实现文件上传
def upload_file(host, api,filepath, **kwargs): url = host + api querystring = { "app_id": "10000", "region": "en", "lang": "zh-cn" } headers = { } ...原创 2020-03-03 23:22:57 · 1010 阅读 · 0 评论 -
python 多线程模版用于制造大规模测试数据
from queue import Queueimport randomimport threadingimport timefrom mysql_client import MysqlManagermysql_config ={ "database": "xiaoyuteacher", "host": "127.0.0.1", "p...原创 2020-02-11 16:39:52 · 340 阅读 · 0 评论 -
【python算法】比较两个版本号的大小
def versionCompare(v1, v2): v1_check = re.match("\d+(\.\d+){0,2}", v1) v2_check = re.match("\d+(\.\d+){0,2}", v2) print(v1_check.group()) if v1_check is None or v2_check is None or v1...原创 2020-02-06 19:14:53 · 612 阅读 · 0 评论 -
python面试170个知识点
持续更新中,目前更新到50了..1.谈谈对 Python 和其他语言的区别答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植、可扩展,可嵌入的解释型编程语言,属于动态语言。拿 C 语言和 Python 比: Python 的第三方类库比较齐全并且使用简洁,很少代码就能实现一些功能,如果用 C 去实现相同的功能可能就比较复...原创 2019-10-26 14:29:23 · 940 阅读 · 0 评论 -
自动化测试框架浅析+selenium 数据驱动之数据文件的使用+python+html测试报告
测试逻辑:1.打开126邮箱,从Excel文件中读取测试数据作为搜索关键词2.在登录密码框输入读取的关键词3.点击登录按钮4.断言登录是否成功,包含认为成功,否则认为失败。测试数据:新建“测试数据.xlsx”,工作表的名字为用户名密码表,...原创 2018-06-28 13:52:07 · 424 阅读 · 0 评论 -
【python】map函数
1.定义:将每个列表元素或字符串都执行某个函数map的函数操作方法:它将每个字符串或者列表元素,应用某个函数方法,结果返回列表。当seq只有一个时,将函数func作用于这个seq的每个元素上,并得到一个新的seq。 让我们来看一下只有一个seq的时候,map()函数是如何工作的。2.举例(1)单一sql>>> map(str,'12345')['1', '2', '3', '4...原创 2018-07-06 23:32:36 · 1290 阅读 · 0 评论 -
【python】统计代码量的小程序
写了一个统计代码量的小程序~~分享一下#encoding=utf-8import os#定义根目录dir_path = r"E:\gloryroad\python"def caculate_line(): count_file = 0 count_line = 0 for root, dirs, files in os.walk(dir_path): ...原创 2018-07-06 23:24:22 · 598 阅读 · 0 评论 -
【python】json字符串
一.python操作json将使用Python语言来编码和解码JSON对象。 Python2.6开始加入了json模块。 Python的json模块序列化和反序列化分别是dumps和loads。json.dumps():将一个Python对象编码成JSON字符串。json.loads():将JSON格式字符串解码成Python对象。 对简单的数据类型可以直接处理。如:string,Unicod...原创 2018-07-06 23:22:15 · 905 阅读 · 0 评论 -
【python】i=i+a和i+=a的区别
1.首先,对于可变参数和不可变参数,是不一样的;可变类型,值可以改变: 列表 list字典 dict不可变类型,值不可以改变: 数值类型 int, long, bool, float字符串 str元组 tuple2.Python中函数参数是引用传递(不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。3.举例说明(...原创 2018-07-13 11:33:17 · 9069 阅读 · 0 评论 -
Python模块 - openpyxl
1、 安装pip install openpyxl想要在文件中插入图片文件,需要安装pillow,安装文件:PIL-fork-1.1.7.win-amd64-py2.7.exe 2、 创建一个excel 文件,并写入不同类的内容# -*- coding:utf-8 -*-from openpyxl import Workbookwb = Workbook() #创建文件对象#...原创 2018-07-04 22:43:21 · 1027 阅读 · 0 评论 -
【python】包
简单的步骤就是:1 先建立一个目录,目录为工程名字2 在工程目录下面在建立一个目录3 __init__.py一.包的概念:在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。包是一个分层的文件目录结构,它定义了一个由模块及子包和子包下的子包等组成的Python的应用环境。包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹被当作包使用...原创 2018-07-04 22:31:33 · 140 阅读 · 0 评论 -
【python设计模式】python设计模式之装饰器
一.理论知识:在代码运行期间在不改变原函数定义的基础上,动态给该函数增加功能的方式,称之为装饰器(Decorator)。装饰器是一个很著名的设计模式,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。 总体来说,装饰器其实也是一个函数,...原创 2018-07-04 22:27:49 · 153 阅读 · 0 评论 -
【python】多线程的概念及应用
一.什么是多线程?一个进程可以有多个线程,共享一个进程的资源;➢线程是一个进程的实体,一个进程可以拥有多个线程,一个线程必须有 一个父进程。线程是由表示程序运行状态的寄存器(如程序计数器、栈指 针)以及堆栈组成,它是比进程更小的单位。 ➢线程是程序中的一个执行流。一个执行流是由CPU运行程序代码并操作 程序的数据所形成的。因此,线程被认为是以CPU为主体的行为。 ➢线程不包含进程地址空间中的代码和...原创 2018-07-11 13:24:25 · 372 阅读 · 0 评论 -
【python】多进程的概念及应用
一.什么是进程?---运行的一个程序,资源分配的最小单位,线程是调度的最小单位包括程序本身,数据,执行的指令进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体,在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令,数据及其组织形式的描述,进程是程序的实体。进程:操作系统中...原创 2018-07-11 13:13:16 · 474 阅读 · 0 评论 -
【python】filter函数
filter函数:filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的结果。filter()函数有两个参数:第一个,自定函数名,必须的 第二个,需要过滤的列,也是必须的举例说明:#coding=utf-8#定义大于5小于10的函数def guolvhanshu(num): ...原创 2018-07-06 23:35:15 · 180 阅读 · 0 评论 -
【python】reduce函数
reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。#coding=utf-8lst = [1,2,3,4,5]print reduce(lambda x,y:x+y,lst)#...原创 2018-07-06 23:37:54 · 584 阅读 · 0 评论 -
【python设计模式】 python设计模式之观察者模式
通俗的讲就是:大V 有任何状态都会通知给粉丝:观察者模式是一个软件设计模式,一个主题对象博包涵一系列依赖他的观察者,自动通知观察者的主题对象的改变,通常会调用每个观察者的一个方法。这个设计模式非常适用于分布式事件处理系统。典型的在观察者模式下:1.发布者类应该包涵如下方法:注册能够接收通知的对象从主对象到注册对象,通知任何变化未注册对象不能够接收任何通知信息2.订购者类应该包涵如下:发布者会调用一...原创 2018-03-24 18:40:17 · 151 阅读 · 0 评论 -
pytest测试框架3-如何将测试代码与测试数据分离?
pytest参数化测试!参数化测试允许传递多组数据,一旦发现测试失败,pytest会及时报告。@pytest.mark.parametrize(argnames,argvalues)装饰器可以达到批量传送参数的目的第一步:用python的requests请求一个接口:import requestsimport pytestimport allureclass TestP...原创 2019-08-18 12:57:56 · 4761 阅读 · 2 评论 -
python3实现一个kafka的consumer和producer
kafka大致流程图如下:生产者:将字符串发送给 Kafka 消费者: 获取数据并展示在终端窗口中一.用python3实现一个producer(填你们自己需要的信息就好啦)import jsonfrom kafka import KafkaProducerfrom kafka.errors import KafkaErrorclass KafkaClie...原创 2019-07-24 17:54:46 · 7215 阅读 · 0 评论 -
python高级函数六剑客
第一位:lambda1.lambda语句被用来创建新的函数对象,并且在运行时返回它们。2.Python使用lambda关键字来创建匿名函数。这种函数得名于省略了用 def声明函数的标准步骤。3.lambda只是一个表达式,函数体比def简单很多4.lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表 达式中封装有限的逻辑进去。5,lambda函数拥有自己的名...原创 2019-07-14 20:55:30 · 294 阅读 · 0 评论 -
pytest测试框架1-强大的Fixture功能
1.fixture是 干什么用的??fixture是在测试函数运行前后,由pytest执行的外壳函数;代码可以定制,满足多变的测试需求;包括定义传入测试中的数据集,配置测试前系统的初始状态,为批量测试提供数据源等等...fixture是pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制!2.举个例子@pytest.fixture()def ...原创 2019-07-14 20:48:46 · 3975 阅读 · 2 评论 -
python-关于时间操作的总结
最近测试了一个接口,各种换算时间,把时间相关的操作查了一遍。。总结下1.因为本机时间是北京时间,Jenkins上的时间是utc格林威治时间会少8h,所以从时间戳转化成时间time.localtime()会根据具体的本地时间转换,产生不一致,所以指定具体时区可以避免这个问题根据时间戳转换时间reset_time = 1552406400reset_time = datetime.da...原创 2019-06-18 16:49:26 · 254 阅读 · 0 评论 -
【python数据分析(一)】Numpy基础及基本应用
一.数据处理的一般流程:数据收集—》数据预处理—》数据处理—》数据展示数据收集:网络爬虫,公开数据集,其他途径收集的数据数据预处理:归一化,二值化,维度变换,去重,无效数据过滤数据处理:数据排序,数据查找,数据统计分析展示:列表,图表,动态交互图形 二.numpy的优点高性能,开源,数组运算,读写迅速 三.numpy的定义1.NumPy 是一个 Pyth...原创 2018-08-07 16:33:25 · 2075 阅读 · 0 评论 -
【python】爬取优信二手车首页的图片被下载到文件夹中
#coding='utf-8'import requestsimport refrom bs4 import BeautifulSoupimport urllibimport timefrom lxml import etreeheads={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537....原创 2018-07-15 00:44:10 · 361 阅读 · 0 评论 -
【python】从一个文件中,查找出现次数最多的5个词
#coding = utf-8def find_word(filename): resultdict={} with open(filename)as fp: for i in fp: print i wordlist=i.split() for j in wordlist: if not resultdict.has_key(j): resultd...原创 2018-07-13 14:14:50 · 7358 阅读 · 0 评论 -
【python】字典的key值是通过什么原理导致唯一性的
字典的key值是可哈希的,字典的存储结构是哈希表, 这样字典的查找性能就会很好(前提是处理好碰撞), 所以字典的key必须是可哈希的可哈希的意思是:不可变得,可变的数据类型不可哈希,列表,字典可变,字母、字符串、数字、元组不可变;在Python中,字典也就是一个个的“映射”,将key映射到value:为了实现这个功能,Python必须能够做到,给出一个key,找到哪一个value与这个key对应。...原创 2018-07-13 13:43:13 · 1651 阅读 · 0 评论 -
【Python练习】抽奖小程序
1.做个抽奖程序,可以输入一个人的名字和抽奖号,然后随机抽取存在的抽奖号,程序可以指定抽取次数,抽取后显示抽奖号和名字,全部抽取完成后输出抽奖的总结果算法:1 能够死循环读入不同的名字和抽奖号,使用字典保存,在输入done的时候退出死循环。2 输入抽奖的次数,保存到一个变量中。3 使用random.shuffle或者choice来随机抽奖抽奖,使用for循环抽取设定的次数,4 使用新的字典变量保存...原创 2018-06-28 13:07:38 · 6621 阅读 · 0 评论 -
python-logging模块
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输...原创 2018-06-28 11:11:54 · 691 阅读 · 1 评论 -
【Python算法】斐波那契数列
典型的递归算法~~~~快速排序会用到~先做个铺垫斐波那契数列即著名的兔子数列:1、1、2、3、5、8、13、21、34、……数列特点:该数列从第三项开始,每个数的值为其前两个数之和,用python实现起来很简单:定义Fibonacci数列如下:非递归方法的函数实现:def fibs(num):result=[0,1]for i in range(num-2):result.append(re...原创 2018-06-21 21:58:14 · 620 阅读 · 0 评论 -
【Python算法】冒泡算法
冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置比如有五个数: 12, 35, 99, 18, 76, 从大到小排序, 对相邻的两位进行比较第一趟:第一次比较: 35, 12, 99, 18, 76第二次比较: 35, 99, 12, 18, 76第三次比较: 35, 99, 18, 12, 76第四次比较: 35, 99, 18, 76, 12经过第一趟比较后, 五...原创 2018-06-21 21:52:38 · 1045 阅读 · 0 评论 -
python文件操作--分析系统log并提取有效数据
数据分析需求:每行内容需要生成以每行首年月日为名称的文件,文件内容写入|0|后的所有行内容(也包括|0| )算法分析:遍历每一行,每行取头14个字母新建文件,文件名为首14个字母,然后把第15字符后的所有字符拷贝到文件中关闭文件数据文件:数据文件:data.log20160215 000148|0|collect info job start|success|20160215000153|0...原创 2018-06-21 21:37:16 · 11738 阅读 · 0 评论 -
Python 爬虫(一)scrapy框架
前几周学习了简单的Python爬虫,准备分两个部分进行总结;第一部分:使用scrapy框架进行简单的爬虫。首先,讲一下啥叫scrapy?百度百科:Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。...原创 2018-05-22 13:17:33 · 1065 阅读 · 0 评论 -
自动化测试框架浅析(一)+Python
目前在学习ui自动化测试,适用于selenium webdriver3.0+python;本章会先简单介绍自动化测试框架的搭建;一.数据驱动数据驱动测试是自动化测试中的主流设计模式之一,属于中级自动化测试工程师必备知识,必须深入掌握数据驱动测试的工作原理和实现方法。相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为相分离,这样的测试脚本设计模式称为数据驱动。例如测试网站的登录功能,测试工程...原创 2018-05-19 20:44:40 · 639 阅读 · 0 评论 -
python-Queue模块总结
Python3.5中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创建一个“队列”对象import queueq = queue.queue(maxsize = 10)queue.queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过queue的构造函数的可选参数maxsize来设定队列长度。如果maxsi...转载 2018-04-14 15:02:40 · 147 阅读 · 0 评论