![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python学习笔记
up1292
从事软件测试十多年,一直浑浑噩噩的,总想提高技术,学习的东西很多很杂,但都不深入。感叹自己水平有限能力一般,勉强在这行混饭吃。记录下自己的学习过程,主要是给自己看的,所以写的很乱,如果能给阅读者一丝丝帮助,那也是您自己的努力。
展开
-
PyQt5:使用QtDesigner设置图形界面
1、安装QtDesigner安装教程在pycharm中安装pyqt5-tools库安装完成后,进入到 项目目录\Lib\site-packages\pyqt5_tools 下发现和教程中写的并不一样,此处没有QtDesigner百度了以后,单独安装QtDesigner库安装完成后,进入到 项目目录\Lib\site-packages\QtDesigner 下,可以看到designer.exe2.使用QtDesigner设置界面双击designe...原创 2021-10-04 14:05:26 · 3042 阅读 · 0 评论 -
PyQt5:PyQt初体验
1、设置一个python虚拟环境使用pycharm创建一个项目,选择Virtualenv选择setting双击任意一个包名,修改镜像地址为国内的地址(方便下载)如果直接添加第三方库失败的话,可以用以下方法添加:安装完pyqt5后,新建一个python文件,写入以下代码,运行:from PyQt5.Qt import *import sysapp = QApplication(sys.argv)window = QWidget()window....原创 2021-10-03 10:27:51 · 97 阅读 · 0 评论 -
初识lackey,实现PC端简单自动化
前提:需要自动化测试一个PC端应用程序过程:1、很自然的找到了pywinauto这个库,看官方文档研究了一下,功能还比较多,尝试写代码。2原创 2021-06-18 11:02:24 · 4917 阅读 · 2 评论 -
单元测试
单元测试基本概念测试:在规定的条件下对软件进行操作,发现软件存在的逻辑,功能,性能等问题单元测试:对软件设计的最小单元进行正确性检测的测试,将可能存在的错误在最小范围内发现解决。单元测试目的:发现模块内部逻辑,语法,算法,功能等错误。单元测试方式:代码级别测试和模块功能测试代码级别测试: 熟悉模块功能,内部逻辑与接口,编写测试用例; 1. 接口测试:确保接口实现正确,符合设计文档规范或者约定 2. 数据结构测试,确保数据结构可用,例如数据库、文件...原创 2020-08-26 16:51:02 · 135 阅读 · 0 评论 -
面向对象设计
三大编程范式正本清源一:有人说,函数式编程就是用函数编程--> 傻X编程范式即编程的方法论,表示一种编程风格大家学习了基本的python语法后,大家就可以写python代码了,然后每个人写代码的风格不同,这些不同的风格就代表了不同的流派如果把python的基本语法比作武术的基本功,那么不同的编程风格就好比不同的武林门派。虽然大家风格不同,但是都可以完成你的编程需求,python是一门面向对象编程语言,但是到目前为止,你从未接触面向对象编程,然而你已经可以解决很多问题了,在pytho原创 2020-07-15 19:20:30 · 133 阅读 · 0 评论 -
Python学习笔记:同步对象event
import threading,timeclass Boss(threading.Thread): def run(self): print("BOSS:今晚大家都要加班到22:00。") print(event.isSet()) # False event.set() time.sleep(5) print("BOSS:<22:00>可以下班了。") print(event.i.原创 2020-05-22 19:11:06 · 137 阅读 · 0 评论 -
Python学习笔记:同步锁
import threadingimport timedef sub(): global num # num-=1 temp=num time.sleep(0.001) num=temp-1num=100l=[]for i in range(100): t=threading.Thread(target=sub) t.start() l.append(t)for t in l: t.join()print .原创 2020-05-21 20:41:28 · 212 阅读 · 0 评论 -
Python学习笔记:多线程
简单的多线程:import threadingimport timedef run(n): print ("task:", n) time.sleep(2)t1 = threading.Thread(target=run, args=("t1",))t2 = threading.Thread(target=run, args=("t2",))t1.start(...原创 2020-03-30 20:01:20 · 170 阅读 · 0 评论 -
Python学习笔记:paramiko模块
创建链接import paramiko# 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)# 连接服务器ssh.connect(hostname='192.168.47.133',port='22',use...原创 2020-03-28 14:25:08 · 152 阅读 · 0 评论 -
Python学习笔记:udp套接字
upd服务端from socket import *ip_port = ('127.0.0.1', 8080)buffer_size = 1024udp_server = socket(AF_INET, SOCK_DGRAM) # 数据报udp_server.bind(ip_port)while True: data, addr = udp_server.rec...原创 2020-02-27 13:01:01 · 111 阅读 · 0 评论 -
Python学习笔记:服务端循环连接请求来收发消息
服务端from socket import * ip_port = ('127.0.0.1', 8000)back_log = 5buffer_size = 1024 tcp_server = socket(AF_INET, SOCK_STREAM)tcp_server.bind(ip_port)tcp_server.listen(back_log) while T...原创 2020-02-25 16:37:50 · 312 阅读 · 0 评论 -
Python学习笔记:客户端服务端循环收发消息
服务端循环.pyfrom socket import *ip_port = ('127.0.0.1', 8000)back_log = 5buffer_size = 1024tcp_server = socket(AF_INET, SOCK_STREAM)tcp_server.bind(ip_port)tcp_server.listen(back_log)print('...原创 2020-02-15 16:31:54 · 664 阅读 · 0 评论 -
Python学习笔记:socket编程
服务端.pyimport socketphone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 买手机phone.bind(('127.0.0.1',8000)) # 绑定手机卡phone.listen(5) # 开机conn, addr = phone.accept() # 等电话msg = c...原创 2020-02-15 14:05:25 · 135 阅读 · 0 评论 -
python随写:实现使用一个字典替换掉一个字符串中多个需要替换的内容的需求
随手瞎写了一个函数,实现使用一个字典来替换掉一个字符串中的多个需要替换的内容def rep(rawstr, dict_rep): for i in dict_rep: rawstr = rawstr.replace(i, dict_rep[i]) return rawstrprint(rep('this is a baby car!',{'a':'A','...原创 2020-01-02 20:23:08 · 4735 阅读 · 0 评论 -
python——logging模块
一 (简单应用)import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')...原创 2019-12-18 08:52:03 · 91 阅读 · 1 评论 -
python——re模块:方法
findall:找到全部匹配search:查到第一个,找到返回一个对象,用group()方法显示match:同search,不过仅在字符串开始处进行匹配split:分割sub:替换subn:(替换, 替换次数)compile:编译>>> com = re.compile("\d+")>>> com.findall("sfhkhfd...原创 2019-12-17 19:24:16 · 82 阅读 · 0 评论 -
python——re模块:字符集[]
[] :字符集,字符集中无元字符,+,*,?,.,^,$,{,}都是普通字符字符集中有特殊意义的符号:- :[a-z] 小写字母 [A-Z] 大写字符 [0-9] 数字^ :[^a-z] 非小写字母\ :转义符 \d 匹配任何十进制数;它相当于类[0-9] \D 匹配任何非数字字符;它相当于类[^0-9] \s 匹配任何空白字符;它相当于类[\t\n...原创 2019-12-12 20:05:47 · 478 阅读 · 0 评论 -
python——re模块:元字符之. ^ $ * + ? {}
元字符:. :通配符,除了换行符(\n)以外都可以匹配^ :必须在字符串的开头匹配$ :必须在字符串的结尾匹配* :按紧挨着的字符去重复,包含(0,+00),*前面的字符,在后面的字符串中就算没有也能匹配+ :按紧挨着的字符去重复,包含(1,+00),+前面的字符,在后面的字符串中至少要有一个才能匹配,*和+都是贪婪匹配,因为都是到+00,所以后面有多少都会匹配出来? :按紧挨着的字符去...原创 2019-12-12 19:09:25 · 4948 阅读 · 2 评论 -
python使用zipfile模块来压缩文件时,解决如何不带入路径的问题
使用zipfile来压缩文件的时候,发现一个问题,在写入压缩文件时,会带入文件的路径代码如下:import zipfilez = zipfile.ZipFile('123.zip', 'w', zipfile.ZIP_DEFLATED)z.write("D:\\PycharmProjects\\allen02\\1206\\123.txt")z.close()打开123.zip...原创 2019-12-06 10:57:02 · 8427 阅读 · 10 评论 -
python-unittest中的 TestLoad 和 defaultTestLoader
写代码的时候写了这么一行代码:discover = unittest.TestLoader.discover(start_dir=path)跑了后报如下的错:TypeError: discover() missing 1 required positional argument: 'self'说明没有实例化,然后把上面的代码改成了discover = unittest.de...原创 2019-11-28 13:42:39 · 2041 阅读 · 0 评论 -
python-unittest详解
unittest详解(一) unittest初识https://www.cnblogs.com/eastonliu/p/9141457.htmlunittest详解(二) 跳过用例的执行(skip)https://www.cnblogs.com/eastonliu/p/9145231.htmlunittest详解(三) 测试套件(TestSuite)https://www.cn...原创 2019-11-25 20:21:28 · 245 阅读 · 0 评论 -
python连接sql server数据库的第三方库——pymssql
1、pymssql安装要对sql server数据库进行操作,上网搜了发现可以使用pymssql这个库。马上pip安装,发现报错(我使用的是python 3.6版本):还是上网搜,发现了办法:从下面的网址下载合适版本的pymssql模块https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql我下的是pymssql-2.1.4-c...原创 2019-11-25 17:30:06 · 994 阅读 · 0 评论 -
python之邮件发送附件为什么一直是空的
以下是一段跑测试的代码,用HTMLTestRunner生成一个html的测试报告,然后调用发邮件模块把测试报告作为附件发出去if __name__ == "__main__": report_path = "../report/htmlreport.html" fp = open(report_path, "wb") s = unittest.TestSuite()...原创 2019-11-22 08:55:08 · 1496 阅读 · 2 评论 -
python接口测试中关于乱码的解决方法
requests对象的get和post方法都会返回一个Response对象我使用了.text方法查看,发现接口返回的中文是乱码,用postman测了一下,返回是正常的。然后研究了一下编码的知识,想使用decode("utf-8")方法来解码,结果发现.text中没有decode()方法。然后用.content方法,发现有decode()方法使用了content来查看,会发现前面存在...原创 2019-11-21 10:59:11 · 746 阅读 · 0 评论 -
python:这种错误的原因和解决方法 "NameError:name 'self' is not defined?"
class A: def __init__(self, a): self.a = a def p(self, b=self.a): print b在学习的时候,写了以上代码,报了如下的错误NameError: name 'self' is not defined上网搜了搜原因,赶紧记录下来:默认参数值在函数定义时评估,但是...原创 2019-11-21 10:04:24 · 12067 阅读 · 1 评论 -
Python-SMTP发送邮件(HTML、图片、附件)
前言:SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。一、Python发送HTML邮件# -*- coding: utf-8 -*-# @Time : 2018/6/6 上午11:27# @Author : Wang# @File : test_mai...转载 2019-11-15 17:11:33 · 1819 阅读 · 0 评论 -
python生成requirements.txt的两种方法
python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包?使用的时候记载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本。这些问题,requirements.txt都可以解决!生成requirements.txt,有两种方式:第一种 适用于单虚拟环境的情况:: 1 pip fre...原创 2019-11-15 15:13:24 · 720 阅读 · 0 评论 -
Python学习记录W18-17:Django知识点整理
内容整理 1. 创建Django工程 django-admin startproject 工程名 2. 创建APP cd 工程名 python manage.py startapp cmdb 3、静态文件 project.settings.py STATICFILE...原创 2019-08-08 16:39:51 · 89 阅读 · 0 评论 -
Python学习记录W05-06:内置模块详解之Random模块
import random#随机整数:print(random.randint(0,99))#随机选取0到100间的偶数:print(random.randrange(0,101,2))#随机浮点数:print(random.random())print(random.uniform(1,10))#随机字符:print(random.choice('abcdefg&am...原创 2018-09-07 17:55:29 · 170 阅读 · 0 评论 -
Python学习记录W04-13:迭代器
# Author: Allenlee'''可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象: Iterable。可以使用isinstance()判断一个对象是否是Iterab...原创 2018-08-23 22:28:27 · 93 阅读 · 0 评论 -
Python学习记录W04-11:生成器——斐波拉契数列
# Author: Allenleedef fib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n += 1 return 'done'f = fib(10)print (f.__next__())print (f.__nex...原创 2018-08-22 21:38:09 · 101 阅读 · 0 评论 -
Python学习记录W04-08:装饰器案例
# Author:Allenleeimport timedef timmer(func): def warpper(*args,**kwargs): start_time=time.time() func(*args,**kwargs) stop_time=time.time() print("the func ru...原创 2018-08-22 11:14:46 · 92 阅读 · 0 评论 -
Python学习记录W2-08:列表的copy
#拷贝列表a=[1,2,[4,5],3]b=a.copy() #b拷贝了a,但是这个copy是浅copy,只拷贝列表的第一层a[0]=99 #把a列表改为[99,2,[4,5],3]print(b) #b列表还是[1,2,[4,5],3]a[2][0]=44 #把a列表改为[99,2,[44,5],3]print(b) #这时b列表变成[1,2,[44,5],3],第2层也变了#深拷贝列表i...原创 2018-04-24 19:18:24 · 86 阅读 · 0 评论 -
Python学习记录W18-08:Django工程创建
Django工程创建命令:django-admin startproject mystie安装Anaconda集成环境,用pycharm创建django项目可能会失败,没找到很好的解决办法。就使用了上面的命令来创建django项目后,再用pycharm直接打开就可以了。运行:python manage.py runserver 127.0.0.1:8001 (默认是80...原创 2019-08-07 19:09:04 · 107 阅读 · 0 评论 -
Python 使用smtplib构建发送邮件服务
# coding=utf-8__date__ = '2019/8/18 10:47'__author__ = 'Allen'import smtplibfrom email.mime.text import MIMETextclass SendMail: def send_mail(self, receivers, subject, content): s...原创 2019-08-19 17:06:21 · 258 阅读 · 0 评论 -
对excel操作进行简单的封装
使用xlrd和xlutils.copy,把取excel的行数、列数、行值、列值、单元格值和写入已有的excel都做了封装。# coding=utf-8__date__ = '2019/8/15 8:47'__author__ = 'Allen'import xlrdfrom xlutils.copy import copyclass OperExcel: """ ...原创 2019-08-15 15:32:50 · 3168 阅读 · 0 评论 -
python load json文件的报错处理
在windows系统下,创建了一个txt文本文件,写入字符串,保存为utf-8的编码格式。然后修改后缀为.json。用以下代码load这个json文件import jsonwith open(r"./file/test3.json", "r", encoding="utf-8") as f: data = json.load(f) print(data)结果报了如...原创 2019-08-15 22:07:28 · 2856 阅读 · 0 评论 -
python读取excel
1、导入模块 import xlrd2、打开Excel文件读取数据 data = xlrd.open_workbook('excel.xls')3、获取一个工作表① table = data.sheets()[0] #通过索引顺序获取(不建议使用,因为用table.显示不了方法)② table = data.sheet_by_index(0) #通过索引顺...原创 2019-08-12 16:40:46 · 176 阅读 · 0 评论 -
python中判断变量的类型
python的数据类型有:数字(int)、浮点(float)、字符串(str),列表(list)、元组(tuple)、字典(dict)、集合(set)一般通过以下方法进行判断:1、isinstance(参数1,参数2)描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type()参数1:变量参数2:可以是直接或间接类名、基本类型或者由它们组成的元组。...转载 2019-08-12 16:44:57 · 563 阅读 · 0 评论 -
Python 连接MySQL的操作
python2中需要导入MySQLdb模块,python3中需要导入pymysql模块# coding=utf-8__date__ = '2019/9/12 10:24'__author__ = 'Allen'import pymysqlclass OperationMysql: def __init__(self): self.conn = pymys...原创 2019-09-12 11:05:57 · 88 阅读 · 0 评论