python基础
文章平均质量分 64
gengjuan_sunny
这个作者很懒,什么都没留下…
展开
-
python常见数据类型之--字符串
(二)字符串1. 成对单引号,或者双引号括起来的内容,就是字符串a = "long"print(a)输出结果:C:\Users\m\AppData\Local\Programs\Python\Python38\python.exe D:/Python/project/geng_juans_homework/day2/变量和输入输出.pylongProcess finished with exit code 02. 字符串取值方式:字符串名[索引值]a = "long"print(a原创 2020-11-19 16:01:11 · 453 阅读 · 0 评论 -
自动化测试常用断言的使用方法
先介绍一下unittest的基本使用方法:import unittest模块定义一个继承 unittest.TestCase 的测试用例类定义 setUp 和 tearDown两个方法,tearDown的过程很重要,是为以后的TestCase留一个干净的测试环境。定义测试用例,均要以test开头一个测试用例只需要测试一个方面,测试的目的和测试内容要很明确。一般使用assertEqual、assertIn等断言方法去判断程序执行的结果和预期结果是否相符调用 unittest原创 2020-11-18 18:01:11 · 1576 阅读 · 0 评论 -
python常见数据类型之--字典
(五)字典特点1.标志 {} 关键字 dict2.a = {} 空字典3.字典里的数据存储格式: key:value 键值对4.字典里可以存储任何类型数据:整数,浮点数,字符串,元组,列表,字典5.取值方式:根据key取值, 字典名[key]a = {'age':28,'score':99.99,'name':'genggeng','people':(91,28,56,63),'city':['China','HK']}print(a['age'])输出结果:28字典里的内建原创 2020-11-09 09:57:50 · 371 阅读 · 0 评论 -
python接口自动化框架--python3+unittest
用例怎么写,用例规范其他功能: 操作数据库,redis查找测试用例产生测试报告发送测试报告(邮件,钉钉)业务相关功能:tokenget_token(phone)get_uid(username)‘’’return uidcreate_sign()return sign原创 2020-11-02 13:02:47 · 218 阅读 · 0 评论 -
python-解析ymal(测试数据)文件
首先编辑yaml文件import yamlwith open('data.yaml','r',encoding='utf-8')as fr: print(yaml.load(fr,Loader=yaml.SafeLoader))if __name__ == '__main__': pass输出结果:#是个字典{'name': 'yiyi', 'port': 3306, 'case': {'url': 123, 'cookie': 'cc', 'names': '-1 -2原创 2020-10-28 19:32:16 · 201 阅读 · 0 评论 -
python-解析配置文件
首先定义ini配置文件,数据库,redis等连接信息都可以写在里面ini文件:import configparserimport osdef parse_ini(node,file_path='config.ini'): if not os.path.exists(file_path):#判断文件路径是否存在 raise Exception('ini文件不存在') #主动抛异常,如果有异常,下面的代码都不执行了 with open(file_path, 'r',原创 2020-10-28 19:24:00 · 226 阅读 · 0 评论 -
python类中的self到底是干啥的
首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗(为了和其他编程语言统一,减少理解难度),不要搞另类,大家会不明白的。下例中将self改为myname一样没有错误:class Person: def _init_(myname,name): myname.name=nam原创 2020-10-27 12:46:32 · 229 阅读 · 0 评论 -
python 单元测试--unittest框架
以下内容包括:写用例,用例描述,参数化,生成测试报告原创 2020-10-26 17:25:31 · 141 阅读 · 0 评论 -
python 队列
# 队列 listimport queueimport randomimport timeimport threadingorders_q = queue.Queue()#队列实例化#生产者/消费者(多个消费者)模式def producer():#一个生产者 for i in range(10): order_id = random.randint(1, 99999) print('订单生成,orderid:%s'%order_id)原创 2020-10-24 18:08:21 · 84 阅读 · 0 评论 -
python多线程,多进程,线程传参,守护线程,锁
进程一个程序,它是一组资源的集合一个进程里面默认是有一个线程的,主线程多进程是可以利用多核cpu的线程最小的执行单位线程和线程之间是互相独立的主线程等待子线程执行结束线程和线程之间,数据是共享的。守护线程:只要主线程执行完成,不管子线程有没有执行完成,全部都结束python的多线程是利用不了多核cpu的import threadingimport timedef cook(): print('做饭') time.sleep(1)def xiyifu():原创 2020-10-23 22:43:48 · 259 阅读 · 1 评论 -
写日志
import loggingfrom loguru import loggerimport time#debug #调试信息,最低的级别#info #正常的提示信息#waring #警告信息#error #出错了 # 50 - 100#exception #程序出异常了 sql执行出错import syslogger.remove() # 清除它的默认设置设置fmt = '[{time}][{level}][{file.path}:line:{line}:function_na原创 2020-10-27 12:38:36 · 189 阅读 · 0 评论 -
面向对象
一.类类:一个模板,一个模型。class PersonManager: #经典类 passclass Person2():#新式类 passclass Person3(object):#新式类 pass对象,实例,实例化对象根据模板造出来的具体的东西实例根据模板造出来的具体的东西实例化把模板做成具体东西的过程。class Car: def run(self): print('run...') def baoyang(se原创 2020-10-27 12:38:16 · 97 阅读 · 0 评论 -
jsonpath:从庞大的接口返回结果(返回结果为字典类型)中取字段值
从庞大的接口返回结果(返回结果为字典类型)中取字段值,返回结果是lists = {"ec": 0, "errcode": 0, "em": "", "cache": 0, "adm_num": 3, "levelname": None, "mems": [ {"uin": 511402865, "role": 0, "g": 0, "join_time": 1589360442, "last_speak_time": 1600570983, "lv": {"point": 0, "lev原创 2020-10-08 23:40:49 · 1106 阅读 · 0 评论 -
网络编程
#get、post、传cookie、headers、传文件、传json、下载文件import requests#get请求url = 'http://127.0.0.1:8999/login'data = {'username':'niuhanyang2','password':'1'}r = requests.get(url,data)传Cookie/header:cookie = {'wp-settings-1':'1','PHPSESSID':'xxxxx'}headers原创 2020-09-18 00:43:44 · 159 阅读 · 0 评论 -
开发mock接口
fastapiimport fastapifrom fastapi import Formfrom starlette.requests import Requestimport uvicornimport toolsserver = fastapi.FastAPI()#定义一个服务# pip install python-multipart# @server.post('/login')# def login(request:Request,username:str=Form(..原创 2020-09-17 22:45:18 · 236 阅读 · 0 评论 -
base64加密
base可以加密、解密,过程可逆import base64#加密s = '646sdsdvdv'r = base64.b64encode(s.encode())#加密,s.encode() 字符串转换为bytes类型做加密print(r.decode())#解密s = 'NjQ2c2RzZHZkdg=='r = base64.b64decode(s)#解密,直接对字符串做解密操作print(r.decode())#加密后的结果转换为bytes类型...原创 2020-09-17 00:28:08 · 167 阅读 · 0 评论 -
md5加密
import hashlib## s = '123456'+'sgdytyr'# s = s.encode()#字符串转成bytes类型# m = hashlib.md5(s)#加密,必须是bytes类型,结果是ASCII码,加密后不可逆# result = m.hexdigest()#返回十六进制数据字符串值# print(result)def my_md5(s): s = str(s) s = s.encode() # 字符串转成bytes类型 m = hash原创 2020-09-17 00:17:11 · 70 阅读 · 0 评论 -
操作redis
import redisr = redis.Redis(host='118.24.1.40', password='HK13ewc&*', port='639', db=4, decode_responses=True#默认redis返回的结果是字符串)#string类型操作# set方法r.set('geng','set方法')#value必须为字符串r.se原创 2020-09-14 23:59:29 · 110 阅读 · 0 评论 -
操作数据库--mysql
操作数据库 所有常用方法import pymysql#oracle sqlserver ..host = '118.24.3.40'# ipuser = 'jxz'#用户名password = '123456' #密码;字符串db='jxz'# 数据库名port = 3306 #端口号;int类型connect = pymysql.connect(host=host,user=user, password=password,原创 2020-09-12 00:02:54 · 108 阅读 · 0 评论 -
excel操作--更改excel
from xlutils import copy #修改excelimport xlrd #修改excel同时需要xlrd第三方模块book = xlrd.open_workbook('students.xls')# 1.打开原excelsheet = book.sheet_by_index(0)# 2.读取excel,xlrd的方法,获取第0个sheet页,复制excel(xlutils) 里不能通过book.sheet_by_index获取某个sheet页的内容new_book = copy原创 2020-09-11 22:59:48 · 249 阅读 · 0 评论 -
excel操作--读取excel
import xlrdbook = xlrd.open_workbook('students.xls')#打开excelsheet = book.sheet_by_index(0)#读取第N个sheet页,默认从0开始sheet = book.sheet_by_name('sheet1')#读取名为‘sheet1’的sheet页print(book.sheets())#所有的sheet页,返回的是一个list,list里面就是每个sheet对象for s in book.sheets():原创 2020-09-11 22:06:37 · 569 阅读 · 0 评论 -
excel操作--写excel
import xlwtbook = xlwt.Workbook()#1.新建一个excelsheet = book.add_sheet('students')#2.新建一个sheet页sheet.write(0,0,'id')#3.写内容:第0行,第0列,内容'id'sheet.write(0,1,'name')sheet.write(0,2,'age')sheet.write(1,0,'1')sheet.write(1,1,'xiaohei')sheet.write(1,2,'38'原创 2020-09-11 16:15:08 · 246 阅读 · 0 评论 -
发送邮件
下载yamail 第三方模块qq邮箱/163邮箱等,打开POP3服务,生成授权码代码块smtp = yamail.SMTP( host='smtp.qq.com',#改成自己邮箱的邮箱的服务器即可 user='5114022865@qq.com',#发送者的邮箱 password='sdfsdf'#如果是163、qq等免费邮箱的话需要授权码, # 自己公司的邮箱,一般都使用.原创 2020-09-10 23:06:11 · 437 阅读 · 0 评论 -
异常处理
语法try: '1'+'2' 1/0except TypeError as e:#数据类型问题 print(e)except ZeroDivisionError as e:#除数不能为零 print('除数不能为零',e)except IndexError as e:#下标越界 print('下标错误')except KeyError:#找不到字典的key print('找不到字典的key')except FileNotFoundError:#文件原创 2020-09-10 22:57:57 · 107 阅读 · 0 评论 -
常用模块-sys
import sysprint(sys.argv) #用来获取运行python文件的时候,传过来的参数原创 2020-09-10 15:13:08 · 91 阅读 · 0 评论 -
常用模块-time
import time#时间戳 一串数字 #从unix元年,每过一秒+1#格式化好的时间 2020-08-29 17:24:38#20200829172438# print(20200829 + 28)# print(int(time.time()))#当前的时间戳# print(time.strftime('%Y-%m-%d %H:%M:%S'))#当前格式化好的时间## seven = int(time.time()) + 60 * 60 * 24 * 7# print(s原创 2020-09-04 01:05:37 · 102 阅读 · 0 评论 -
常用模块--os模块
import osprint(os.listdir('D:/Python/project/geng_juans_homework/day5') )#获取某个目录下的内容os.mkdir('python1')os.mkdir('python1/day2')#父目录不存在的时候,不会创建父目录,报错os.makedirs('java/day3') #父目录不存在的时候,会创建父目录os.remove('python') #删除文件,不能删除文件夹os.rmdir('java')#删除空文件夹的原创 2020-09-04 00:50:15 · 225 阅读 · 0 评论 -
常用模块-random模块
print(random.randint(1,10))#随机生成1-10之间的一个整数,包含10print(random.uniform(1,10))#随机生成1-10之间的一个小数,包含10print(round(random.uniform(1,10),2))#随机生成1-10之间的一个小数,包含10,保留两位小数print(random.choice(string.ascii_lowercase))#随机取一个元素,多次取可能会产生重复的元素print(random.sample(string原创 2020-09-03 23:40:07 · 2644 阅读 · 0 评论 -
内置函数
# list dict tuple str int float set# print input type id lenprint(all([1, 2, 3,4])) # 判断可迭代的对象里面的值是否都为真,都为真,结果才是真print(all([1,2,3,4,False]))#判断可迭代的对象里面的值是否都为真print(any([0,False,'',[],1])) # 判断可迭代的对象里面的值是否有一个为真,只要有一个为真,就是真print(any([0, 1, 2, 3, 4]))原创 2020-09-03 22:41:45 · 182 阅读 · 0 评论 -
第三方模块安装
安装第三方模块常见问题:命令不存在安装python的时候一定要加入环境变量的目录: c:/python/#安装目录 c:/python/Scripts #安装目录下的scriptsperl,解决找不到pip的问题,常见于windows7系统where pip -> pip_hhh修改pip源,解决下载第三方模块网速慢的问题pip安装第三方模块的三种方式:pip install xxxwhl,首先要下载whl文件pip install xxx.原创 2020-09-03 15:07:47 · 160 阅读 · 0 评论 -
pip 常用命令
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。pip 常用命令转载 2020-09-03 15:05:46 · 150 阅读 · 0 评论 -
模块
1. 一个python文件就是一个模块模块导入1. 模块查找顺序: (1)首先从当前目录下找 (2)从python的环境变量目录里面找2. 查看python环境变量目录import sysprint(sys.path)执行结果:3. 导入模块是非python环境变量下的文件,导入方式:(1) 把该文件的路径加入python环境变量list中(python文件的环境变量是一个list),每次使用都需要再次加入,并不是加一次就永久在这个文件夹下例如:想把c原创 2020-09-02 15:19:42 · 102 阅读 · 0 评论 -
json文件里写入字典套字典,先定义最外层字典,然后把内层变量加入
shop[shop_name]={}#json文件里写入字典套字典,先定义最外层字典,然后把count和price加入 shop[shop_name]['count'] = shop_count shop[shop_name]['price'] = shop_price with open('a.json', 'w', encoding='utf-8')as fw: json.dump(shop, f..原创 2020-08-28 20:37:28 · 442 阅读 · 0 评论 -
python判断一个数是否为整数
python判断一个数是否为整数转载 2020-08-28 20:34:54 · 11902 阅读 · 0 评论 -
函数
函数定义,方法:#定义函数,提高代码的复用性def hello(): #定义函数,提高代码的复用性 print('nihao')hello()输出结果:nihao函数入参,返回结果:#函数里面遇到return,函数立即结束def check_password(password):#校验密码是否合格,必传参数,位置参数 password_set = set(password) if password_set & set(string.digits) an原创 2020-08-28 00:14:36 · 99 阅读 · 0 评论 -
json操作
特点:json就是一个字符串,只不过是所有语言都能解析这个字符串dumps方法:pyton的数据类型list、tuple、dict)转jsonimport jsond = {'name':'xiaohei','cars':[1,2,3],'house':(4,5,6)}result = json.dumps(d)#pyton的数据类型转json的 #(list、tuple、dict)print(result)print(type(result))输出结果:{"name": "xiaohei原创 2020-08-27 22:47:44 · 201 阅读 · 0 评论 -
集合
set特点:天生去重,无序,没有下标l = [1,1,2,2,3,3,4,4,5,5]l2 = {1,2,3,4,5,5,6,8}#集合的定义也用大括号,但是自动去重s = set(l)print(s)print(l2)输出结果:{1, 2, 3, 4, 5}{1, 2, 3, 4, 5, 6, 8}定义空集合:l2 = set()交集,并集,差集新增元素l3 = set()l3.add(8) #新增元素删除元素l2 = {1,2,5,6,8}l2.remov原创 2020-08-27 21:02:18 · 81 阅读 · 0 评论 -
列表生成式
a = [1,2,3,4,5,6]b = []for i in a: b.append(str(i))c = [str(i) for i in a] #如果i在a里,生成列表cd = [str(i) for i in a if i%2 !=0]#如果i在a里,i%2不等于0,生成列表dprint("c:",c)print("d:",d)输出结果:c: ['1', '2', '3', '4', '5', '6']d: ['1', '3', '5']...原创 2020-08-27 17:48:31 · 85 阅读 · 0 评论 -
三元表达式
例如:age =18if age < 18:v = ‘未成年人’else:v = ‘未成年人’age =18v = '未成年人' if age <18 else '成年人' #如果年龄小于18,是未成年人,否则,是成年人原创 2020-08-27 17:33:37 · 239 阅读 · 0 评论 -
文件操作
Python读写文件模式1、r 打开只读文件,该文件必须存在。2、r+ 打开可读写的文件,该文件必须存在。3、w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。4、w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。5、a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。6、a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,原创 2020-08-27 17:29:25 · 598 阅读 · 0 评论