人工智能—开发语言—Python
讲解一些python基本语法和python常用库的使用
测试开发abbey
高级测试工程师,2年C语言开发,4年服务端测开,擅长服务端测试、音视频测试
展开
-
Python几种加密算法
hashlibhashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法具体应用import hashlibstring = "beyongjie"# ######## md5 ########md5 = hashlib.md5()md5.update(string.encode('utf-8')) #注意转码res = md5.hexdigest()print("原创 2020-12-28 22:44:16 · 612 阅读 · 0 评论 -
python魔法函数
一、魔法函数使用举例Python中这个__repr__函数,对应repr(object)这个函数,返回一个可以用来表示对象的可打印字符串.如果我们直接打印一个类,向下面这样class A():def __init__(self,name=None,id=1):self.id=idself.name=nameif __name__ == '__main__':a=A()print(a)输出结果:<__main__.A object at 0x...原创 2020-12-23 10:26:57 · 1797 阅读 · 0 评论 -
Python中生成一个指定长度的随机字符串实现示例
方法一:定义一个函数,参数为所要生成随机字符串的长度。通过random.randint(a, b)方法得到随机数字,具体函数如下: 1 2 3 4 5 6 7 8 9 10 def generate_random_str(randomlength=16): """ 生成一个指定长度的随机字符串 """ random_str = '' base...转载 2020-12-22 14:38:58 · 1153 阅读 · 0 评论 -
Python常用编程模块汇总
一、操作RabbitMQ1、pika库二、并发1、基础并发编程asyncio库1)创建coroutine协程及task任务import asyncio # 1.定义一个协程函数async def do_some_work(x): print("waiting:", x)if __name__ == "__main__": # 2.获取协程对象,这个时候do_some_work函数并没有执行 coroutine = do_some_work(2).原创 2020-12-19 20:06:20 · 496 阅读 · 0 评论 -
2020-12-19
原文作者:笨小孩哈哈原文地址:python多线程详解(超详细)import threadingfrom threading import Lock,Threadimport time,os''' python多线程详解 什么是线程? 线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。 线程自己不拥有系统资源,只拥有一点儿在运行中必不可少.原创 2020-12-19 19:58:11 · 88 阅读 · 1 评论 -
Python关于对象实例的内置函数
def _scan(self, name_list): mod = __import__('.'.join(name_list),globals(),fromlist=name_list[:-1]) kws = [] for item in dir(mod): if item.startwith('_'): continue attr = getattr(mod, item) if isinstance(att.原创 2020-12-19 14:46:33 · 122 阅读 · 0 评论 -
python -asyncio
关于python异步的基础知识参考:https://blog.csdn.net/sanmi8276/article/details/111242221关于asyncio的一些关键字的说明: event_loop 事件循环:程序开启一个无限循环,把一些函数注册到事件循环上,当满足事件发生的时候,调用相应的协程函数 coroutine 协程:协程对象,指一个使用async关键字定义的函数,它的调用不会立即执行函数,而是会返回一个协程对象。协程对象需要注册到事件循环,由事件循环调用。原创 2020-12-17 11:31:47 · 209 阅读 · 0 评论 -
修改python的pip下载源
使用方法有两种,一种为临时使用,另外一种为永久修改。1.临时使用: 在使用pip的时候加参数-i,如下:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas2.永久修改: Linux下,修改~/.pip/pip.conf(或者创建一个),将index-url变量修改为所要更换的源地址:[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simp原创 2020-12-15 19:23:39 · 235 阅读 · 0 评论 -
python的os模块基本使用
1、os.path.abspath(__file__)用法及意义os.path.abspath(__file__) 作用: 获取当前脚本的完整路径import osprint(os.path.abspath(__file__) )result:注意:只有当在脚本中执行的时候,os.path.abspath(__file__)才会起作用,因为该命令是获取的当前执行脚本的完整路径,如果在交互模式或者terminate 终端中运行会报没有__file__这个错误:>&g原创 2020-12-10 15:54:01 · 188 阅读 · 0 评论 -
Python之列表list模块
一、基础1.常用方法:【'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'这些方法,下面进行讲解】1)append在列表的最后添加,如果为可迭代元素,则可迭代元素作为整体添加到列表2)extend在列表的最后添加;如果为可迭代元素, 则把可迭代元素分开添加到列表3)默认删除列表中的最后一个元素pop,也可以根据元素的位置删除列表元素4)rem转载 2020-12-08 10:58:55 · 560 阅读 · 0 评论 -
Python3 中 random模块
Python中的random模块用于生成随机数。下面具体介绍random模块的功能:1.random.random()#用于生成一个0到1的随机浮点数:0<= n < 1.0import random a = random.random()print (a) 2.random.uniform(a,b)#用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: b <= n <= a。如果..转载 2020-12-08 10:27:22 · 127 阅读 · 0 评论 -
模拟分发扑克牌(python实现)
52张扑克牌发个4个玩家,每人13张。要求:自动生成一幅扑克牌组;洗牌;发牌到玩家手中;将玩家手中扑克牌按花色大小整理好。思路一import randomimport operator# 初始化扑克牌def auto(): pokers=[] for i in ['♥','♠','♦','♣']: for j in ['A','2','3','4','5','6','7','8','9','10','J','Q','K']: p...转载 2020-12-04 10:32:11 · 2073 阅读 · 1 评论 -
python @classmethod 和 @staticmethod区别,以及类中方法参数cls和self的区别
一、@classmethod 和 @staticmethod1、staticmethod作用:让类中的方法变成一个普通函数(普通函数没有绑定在任何一个特定的类或者实例上。所以与不需要对象实例化就可以直接调用)特点:既可以使用类直接调用,也可以类的实例调用,并且没有任何隐含参数的传入,所以不需要self(参数名是随便定的)。>>> class C(object):... @staticmethod... def add(a,b):...原创 2020-12-02 13:40:08 · 260 阅读 · 0 评论 -
一个有趣的python排序模块:bisect
今天同事说到了一个python的排序模块bisect,觉得挺有趣的,跟大家分享分享。 先看看模块的结构: 前面五个属性大家感兴趣可以打出来看看数值,这里就不介绍了。 先说明的是,使用这个模块的函数前先确保操作的列表是已排序的。先看看 insort 函数:其插入的结果是不会影响原有的排序。 再看看bisect 函数: 其...转载 2020-12-01 10:18:25 · 84 阅读 · 0 评论 -
Python中的 // 与 / 的区别
" / " 表示浮点数除法,返回浮点结果; " // " 表示整数除法,返回不大于结果的一个最大的整数【code】print("6 // 4 = " + str(6 // 4))print("6 / 4 =" + str(6 / 4))【result】6 // 4 = 16 / 4 =1.5原创 2020-11-30 11:50:20 · 250 阅读 · 0 评论 -
Python中单个下划线“_”变量的目的是什么?
在Python中,下划线_被视为“我不关心”或“丢失”变量python解释器将最后一个表达式值存储到名为的特殊变量中_。>>>1010>>>_10>>>_*330下划线_也用于忽略特定值。如果您不需要特定值或未使用这些值,只需将值分配给下划线即可。1)解包时忽略一个值x,_,y=(1,2,3)>>>x1>>>y32)忽略索引...原创 2020-11-30 11:00:29 · 493 阅读 · 0 评论 -
Python 模块之heapq
1、heapq介绍:1)堆是非线性的树形的数据结构,有两种堆,最大堆与最小堆。(heapq库中的堆默认是最小堆)最大堆,树种各个父节点的值总是大于或等于任何一个子节点的值。 最小堆,树种各个父节点的值总是小于或等于任何一个子节点的值。2)堆是一个二叉树,其中最小堆每个父节点的值都小于或等于其所有子节点的值。整个最小堆的最小元素总是位于二叉树的根节点。3)堆是用数组实现的二叉树,所以它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。4)python的he.原创 2020-11-30 10:53:47 · 3687 阅读 · 1 评论 -
Python中collections模块
目录Python中collections模块:模块实现了特定目标的容器,以提供Python标准内建容器 dict、list、set、tuple 的替代选择。 Counter:字典的子类,提供了可哈希对象的计数功能 defaultdict:字典的子类,提供了一个工厂函数,为字典查询提供了默认值 OrderedDict:字典的子类,保留了他们被添加的顺序 namedtuple:创建命名元组子类的工厂函数 deque:类似列表容器,实现了在两端快速添加(append)和弹出(pop)转载 2020-11-30 10:04:43 · 231 阅读 · 0 评论 -
python面试常见题目
Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出 Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优秀的源代码值得阅读,比如:requests、flask、tornado,下面列举一些常见的Pythonic写法。0. 程序必须先让人读懂,然后才能让计算机执行。“Programs must be written for people to read, and only incidentally for m转载 2020-11-26 09:09:07 · 175 阅读 · 0 评论 -
Python XML 解析
1:解析xml---文件from xml.dom.minidom import parseimport xml.dom.minidom# 使用minidom解析器打开XML文档DOMTree = xml.dom.minidom.parse("./test.xml")print(DOMTree)collection = DOMTree.documentElement# 集合某个标签VariationChilds = collection.getElementsByTagName("n原创 2020-11-23 12:11:56 · 227 阅读 · 1 评论 -
Python 把较长的一行代码分成多行的技巧
概述:在写代码过程中,经常遇到一行代码很长的情况。为了让代码显得整齐干净,就需要把一行代码分成多行来写,Python中有三种小技巧可以实现该功能:1.用反斜杠\链接多行代码2.用小括号括起来3、针对较长字符串分成多行书写的还有一种简单的方法:用三个单引号,但是该方法只针对字符串有用。分类:...转载 2020-09-22 15:19:10 · 6359 阅读 · 0 评论 -
Python-按照list中dict的某个key进行排序
1、list of dict数据结构说明:"trends": [ { "name": "Rick Gates", "promoted_content": null, "query": "%22Rick+Gates%22", "tweet_volume": 135732, "...原创 2020-09-17 11:44:38 · 1362 阅读 · 1 评论 -
Python中List的复制(直接复制、浅拷贝、深拷贝)
复制方法汇总:方法分类 方法 方法说明 代码示例 直接赋值 = 复制的是list的地址,这两个列表是完全等价的,修改其中任何一个列表都会影响到另一个列表。 old = [1,[1,2,3],3] new = old 浅拷贝 copy.copy()方法 对于List来说,第一层,是实现了深拷贝,但其内嵌套的List,仍然是浅拷贝。 因为嵌套的List保存的是地址,复制过去的时候是把地址复制过去了,嵌套的List在内存中指向的还是原创 2020-09-17 10:56:45 · 2016 阅读 · 0 评论 -
利用python实现ORM
转载自:利用python实现ORM做web开发的基本绕不过ORM,很多时候ORM可以大大减少开发工作量,那么ORM是怎样实现的呢?其实很简单,说穿了一文不值,本文先实现一个简单的ORM然后分析下现在流行的python ORM框架peewee源码。ORM原理ORM即对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),简单来说就是把数据库的一个表映射成程序中的一个对象,表中的每个字段对应程序对象的一个属性,一个表记录对应一个对象实.转载 2020-08-21 12:05:04 · 662 阅读 · 0 评论 -
Python如何打包EXE可执行文件
一、安装Pyinstaller使用Python打包EXE可执行文件时,需要使用Pyinstaller,使用命令pip install PyInstaller进行安装,如下图:安装成功后的效果如下图(这里主要计算机需要联网,因为需要下载安装包):安装完Pyinstaller后,就可以使用它对.py文件进行打包了,打包分两种情况,一种是打包控制台程序,另外一种是打包使用类似PyQt设计的GUI程序二、打包控制台程序打开cmd命令窗口,使用cd命令切换到.py文件所在路径,然后使用py转载 2020-08-17 14:26:39 · 287 阅读 · 0 评论 -
python 全局变量引用与修改
一、引用使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加global关键字。如:#! /usr/bin/pythona = 1b = [2, 3]def func(): if a == 1: print("a: %d" %a) for i in range(4): if i in b: print("%d in list b" %i) else: print("转载 2020-08-17 10:38:02 · 244 阅读 · 0 评论 -
python文件处理系列(二):Excel文件读取库xlwings
一、xlwings概述1.xlwings特点xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改 可以和matplotlib以及pandas无缝连接 可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。 开源免费,一直在更新2.xlwings基本对象对象名称 对象说明 创建方法 备注 App 打开Excel程序 1.创建app对象 import xlwings as xw原创 2020-08-15 16:41:18 · 541 阅读 · 0 评论 -
Python数值类型:小数与百分数的转换
#百分比转换位小数s = '20%' # 默认要转换的百分比是字符串aa = float(s.strip('%')) # 去掉s 字符串中的 %bb = aa/100.0 #运行环境是Python2.7 其中Python2.X 与 python 3X中的除法是有区别print bb# 输出结果是 0.2# 小数转换位百分比#方法一a = 0.3214323bb = "%.2f%%" % (a * 100)print bb# 输出结果是32.14%#方法二a = .转载 2020-08-15 13:06:48 · 2938 阅读 · 0 评论 -
Pandas库(3):DataFrame的条件过滤用法
一、过滤机制可以按照下列方法,依据列的值过滤DataFrame处理某些符合条件的行dataframe[ 条件 ]dataframe[ dataframe["colname"] > value ]dataframe[ dataframe["colname"] < value ]dataframe[ dataframe["colname"] != value ]二、推导过程boolean_array = dataframe["colname"] > value转载 2020-08-15 13:02:04 · 4897 阅读 · 0 评论 -
Pandas库(2):数据的统计分析
1.0 Pandas 中的数据类型:Series Dataframe 一维 二维的、表格型 每个元素都有各自的标签(数字/字符) 可储存多个不同类型数据,每个轴都有标签 可视为一个由带标签的元素组成的 numpy 数组 可视为一个 series 的字典 2.0 适用于Series和DataFrame数据类型函数名 描述 参数说明 使用说明 .sum() 求和 .mean() 求期望 ...原创 2020-08-15 12:24:52 · 189 阅读 · 0 评论 -
Pandas库(1):DataFrame类
一、DataFrame类概述Series是pandas库的一维数据类型,DateFrame是pandas库的二维数据类型。DateFrame既有行索引,也有列索引:1)行索引:默认是0,1,2,3。。。,可以通过字典的Key指定行索引name,如果通过ndarray、list、Series等创建则无法指定行索引名称2)列索引:默认是0,1,2,3。。。,可以通过index参数修改默认列索引名称二、创建DataFrame方式 方法 1.通过一维的ndarray、列表创原创 2020-08-15 11:59:18 · 765 阅读 · 0 评论 -
Python时间库—datetime的详解及使用
一、概述datetime库定义了2个常量和5个类。 常量名/类名 描述 2个常量 MINYEAR=1 AXYEAR=9999 5个类 date类 表示日期的类 time类 表示时间的类 datetime类 表示时间日期的类 timedelta类 表示两个datetime对象的差值; tzinfo类 表示时区的相关信息 1、date类date类包含三个参数,分别为year,month,day...原创 2020-08-11 14:31:49 · 3256 阅读 · 0 评论 -
Python字典:字典操作
一、访问字典的值相应的键放入熟悉的方括弧,如下实例:#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print "dict['Name']: ", dict['Name']print "dict['Age']: ", dict['Age']二、更新字典的值与向字典中添加新的键/值对操作方法一样#!/usr/bin/python dict = {'Name': 'Zara', 'A原创 2020-08-07 15:04:26 · 191 阅读 · 0 评论 -
Python内置函数
Python2.6 开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。1.基本语法:通过{}和:来代替以前的% ;2.实例设置参数方式 实例 通过元组设置参数 1.# 不设置指定位置,按默认顺序 "{} {}".format("hello", "world") 2.# 设置指定位置 "{1} {0} {1}".format("hello", "world") 通过关键字设置参数...原创 2020-08-06 15:25:55 · 230 阅读 · 0 评论 -
Python常见报错
问题描述:报错原因:报错的安装包与python位数不一样解决办法:1.先卸载32位的python库,卸载如有问题2.下载并安装64位的报错的python库参考文章:ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。Python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。...原创 2020-08-06 14:00:03 · 573 阅读 · 0 评论 -
Python高级编程:类和实例属性的查找顺序—mro查找
一、mro查找定义如果多个类继承父类,然后又被多个类继承这种复杂的问题,可以使用mro方法class D: passclass C(D): passclass B(D): passclass A(B,C): passprint(A.__mro__)输出结果:(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C.原创 2020-07-28 15:43:36 · 1072 阅读 · 0 评论 -
Python中包(package)的调用方式
python 是通过module组织代码的,每一个module就是一个python文件,但是modules是通过package来组织的。如果我们自己写着玩,有的时候就是一两个Python文件在同级目录下,但是当我们开始尝试开发更为复杂的项目的时候,package这个概念的使用就有助于我们组织我们写的一个个modules。module的概念相对简单,所以不会再多说,主要是说一下package。Python packagepackage的定义很简单,在当面目录下有__init__.py文件的.转载 2020-07-27 10:42:30 · 4042 阅读 · 0 评论 -
Python内置类型—序列
一、序列定义及类型序列:一块存放多个值的连续内存空间类型:字符串、列表、元组、集合和字典,集合和字典不支持索引、切片、相加和相乘操作二、序列索引序列中,每个元素都有属于自己的编号(索引)。从起始元素开始,索引值从 0 开始递增,如图 1 所示。除此之外,Python 还支持索引值是负数,此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始,如图 2 所示。注意,在使用负值作为列序中各元素的索引值时,是从 -1 开始,而不是从 0 开始。无论是采用原创 2020-07-20 19:32:00 · 334 阅读 · 0 评论 -
python的可变参数 *args 和关键字参数**kw
*args:非关键字参数,传入任意个不需要包含参数名的参数,参数实际以tuple形式传入 **kw:是关键字参数,传入任意个要带参数名的参数,参数实际以dict传入 例子>>> def f(*args, **kw):... print('args= ',args) #args接收任意个不带参数名的参数... print('kw= ',kw) #kw接收任意个带参数名的参数...>>> f(1,2,3,a=4,b=5,c=6..原创 2020-07-20 17:04:51 · 508 阅读 · 0 评论 -
RobotFramework系列(一):RIDE使用教程
刚接触自动化测试不久,对里边的各种技术还是挺感兴趣的,所以也学着那些测试大牛们编写个自动化测试脚本,体验一下自动化的感觉。一、Robot Framework简介1)RobotFrameworkRobot Framework是一款用Python编写的功能自动化测试框架,支持关键字驱动且可扩展性好。它主要用于需要进行多次验收的系统测试,或者验收测试驱动开发,尤其对于一些常年需要维护的系统来说,价值更大。2)RIDERIDE是一款专门用来编辑Robot Framewor...转载 2020-07-20 15:29:41 · 7839 阅读 · 2 评论