每天学点python
2022年,每天都要学点python1月19日yied 和 yied from 区别和用法1.带Yied函数——带yield的函数是一个生成器,而不是一个函数,这个生成器有一个函数就是next函数,next就相当于"下一步"生成哪个书,这一次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,生成器并不会从foo函数开始执行,只是接着上一步停止的地方开始,然后遇到y
每天要学点python
#python
1月19日
- yied 和 yied from 区别和用法
1.带Yied函数——带yield的函数是一个生成器,而不是一个函数,这个生成器有一个函数就是next函数,next就相当于"下一步"生成哪个书,这一次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,生成器并不会从foo函数开始执行,只是接着上一步停止的地方开始,然后遇到yield后,return出要生成的数,然后到这步就停止结束了。
优点:用生成器可以节省内存
2.Yied from 能够解决函数嵌套生成器的复杂性
https://www.cnblogs.com/cnkai/p/7514828.html
-
->list python中这个是什么写法???
这个是用来描述这个方法返回的是什么类型,可以不用写 -
rode_step: list用法
来指定这个变量的类型 -
Re库的使用
2.re.sub(r’’, “要替换的新的字符串”,正则匹配的str)
1.re.findall(r’’, str):匹配全部,并返回列表
1月20日
- Python中列表、元组的区别
Python有6个序列的内置类型,列表,元组,字典,集合,字符串,buffer,unicode字符,但最常见的是列表和元组。
1.相同点:序列都可以进行的操作包括索引,切片,加,乘,检查成员。
2.不同点:
元组 列表
元组的元素不能修改呀,修改时可以用切片的方式 列表元素可以修改
元组是小括号 列表是方括号
元组中只有1个元素时后面需要加逗号(1, ) 列表只有一个元素时不需要加逗号
1月21日
-
String中判断string类型比如都是字符串等方法
-
JsonPath通过python的方式提取变量
作用:用来解析多层嵌套的json数据
基本使用:
import jsonpath
res = jsonpath.jsonpath(dic_json数据, ‘$…要提取的key’)
$”表示最外层的{},“…”表示模糊匹配,当传入不存在的key_name时,程序会返回false -
Json包
json.dump():将python内置类型序列化为json对象后写入文件
json.load():读取文件中json形式的字符串,转化成python类型
 -
编码转换
任何编码都与unicode有关联

1月25日
1.Os包的总结学习
- Os库:提供了非常丰富的方法来处理文件和目录
https://www.runoob.com/python/os-file-methods.html
觉得常用的命令:
Os.getcwd():获取当前工作目录
Os.remove(path):删除文件
os.removedires(path):递归删除目录
os.rmdir(path):删除path指定的空目录
os.system(“命令”):直接输入命令
os.path.join() ???
2.mysql操作
- MySQLdb 是用于Python链接Mysql数据库的接口
https://www.runoob.com/python/python-mysql.html

Curosr.fetchone():查询一条数据
Curosr.fetchall():查询全部数据
db.rollback():回滚
3.httprunner学习(这比较漫长,需要慢慢来)
我的博客总结:
https://blog.csdn.net/qq_44663072/article/details/122776700?spm=1001.2014.3001.5501
实现数据驱动方式:
https://www.cnblogs.com/chineseluo/p/13703976.html
hrun2 与 hrun3的区别:
https://www.cnblogs.com/yoyoketang/p/15009395.html
上海悠悠总结:
https://www.cnblogs.com/yoyoketang/tag/httprunner/
看源码经验总结:
1.思路要清晰
2.模块分类要清晰明了
3.exception可以自定义统一写在一个py文件中
4.灵活的使用封装继承
1月26日
…懒死我得了!!!
2月8日
- Time库的学习
https://www.runoob.com/python/python-date-time.html

2月9日 - python操作redis
https://www.runoob.com/w3cnote/python-redis-intro.html
set(name, value, ex=None, px=None, nx=False, xx=False)
- ex - 过期时间(秒)
- px - 过期时间(毫秒)
- nx - 如果设置为True,则只有name不存在时,当前set操作才执行
- xx - 如果设置为True,则只有name存在时,当前set操作才执行
连接池:redis.ConnectionPool(),作用:来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。
r = redis.Redis(decode_response=True)
1.设置key:r.set(key,value,ex/px,nx/xx=True)
2.Key不存在时执行:r.setnx(name,value)
3.设置过期时间秒:r.setex(name, time, value)
4.设置过期时间毫秒:r.pssetex(name, time, value)
6.批量设置信息:r.mset({“name”: “dongshuai”,“age”: 27})
7.一次取出多个键值对:r.mget(‘name’, ‘age’)
8.取多个值,并将值做运算,最后将结果保存至新的变量:bitop(operation, dest, *keys)
9.点击数场景时,存在大量的锁级征用:r.incr(“点击数变量”)
10.在redis name值后面追加内容:r.append(key, value)
11.自增、自减等。。????遇到再说吧 hincrby(name, key, amount=1)
12.左边增加,类似于list的append,只是这里是从左边新增加:lpush(name, value1, value2,value3)
13.读取:print(r.lrange(‘list1’, 0, -1))
14.右边增加:rpush(name, value1, value2,value3)
15.删除(指定值进行删除):r.lrem(‘list2’, 0, ‘aa’) 删除list2中所有的aa
16.往集合中添加元素:r.sadd(name, valuers)
17.交集,并集,差集等等
18.判断是否是集合的成员,类似In:sismember(name, value)
19.集合删除元素-指定值删除
20.有序集合:r.zadd(naem, {})
其他常用操作:
1.判断是否存在key:exists(name)
2.模糊匹配:keys(pattern=’’)
3.获取类型:type(name)
4.查看所有元素。。。有点多。。。。
管道:一次可以执行多个命令,减少反复的数据包,大大提高执行批量命令的功能
pipe = r.pipeline() #创建一个管道
pipe.set(‘name’, ‘jack’)
pipe.set(‘role’, ‘sb’)
pipe.sadd(‘faz’, ‘baz’)
2月10日
-
jmespath表达式的学习
-
加密相关学习
https://blog.csdn.net/ruanxingzi123/article/details/83017575
我们说的加密,都是啥Udine二进制编码格式进行加密的,对应到python中,则是我们的bytes,这个用decode 和 encode来转换
需要导入的包:haslib
常见的加密:
Md5加密
Sha1加密(基于MD5,比MD5更安全)
RSA加密:非对称加密,用生成的公钥要加密content,用私钥来解密,安全性很高 -
多线程学习(部分不是很理解,需要看视频看课程和练习!!)
https://www.runoob.com/python3/python3-multithreading.html
run(): 用以表示线程活动的方法。
start():启动线程活动。
join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。
isAlive(): 返回线程是否活动的。
getName(): 返回线程名。
setName(): 设置线程名。
1.threading模块创建线程
2.线程同步:线程锁
3.线程优先队列
- 装饰器复习练习
1.装饰器原理:将函数作为变量在另一个函数中执行
2.装饰器作用:在方法前或方法后执行一些东西
3.@wraps作用:解决加上装饰器后,内置的注释文档等被改变的问题
4.带参数与不带参数的装饰器:带参数的话就多上一层,最外层就可以用来传参
5.如果需要继承类可以使用类装饰器:
6.类中的__call__()方法

2月11日
- pytest、unitest等知识的复习
1.命令
2.分层
3.数据驱动
4.参数关联、数据热处理
5.用例前后置实现
6.测试报告生成
7.相关包的使用 如 yaml等
2月12日
- selenium知识的复习
2月13日
-
django知识复习
-
restframework知识的复习
2月14日
- 对ini配置文件操作
2月16日
接着学完hrun3,学完后写个demo,做到压测自动化
2月17日
https://www.cnblogs.com/yoyoketang/p/14887087.html
2月18日
之前解决完数据驱动问题之后,继续学习hrun的知识
Yaml中export参数,可暴露变量变为全局变量
2月19日
基础的概念解释
解释性语言与编译型语言:
面向对象:
抽象类:
封装与继承:
2月20日
列表生成式 和 字典生成式
https://www.jianshu.com/p/9abdea11f8d8
a = [‘aa’, “bb”, “cc”]
b = [“dd”, ‘ee’, ‘ff’]
print(list(zip(a, b)))
c = {x:y for x, y in list(zip(a, b))}
结果:{‘aa’: ‘dd’, ‘bb’: ‘ee’, ‘cc’: ‘ff’}
3月3日
迭代器 和生成器:生成器是一类特殊的迭代器,https://www.cnblogs.com/sowhat1412/p/12734333.html
for循环就是调iter(),然后返回一个带next()的生成器对象,然后再循环执行next(),直到返回stop异常。
面向对象:面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模
抽象:找出一类的共同特征
解释性:运行一句代码,就翻译一句,因此效率比较低
3月4日
sorted(iterable, key=None, reverse=False) # 排序,reverse=True是,为倒叙排序,默认为正序
更多推荐
所有评论(0)