每天要学点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是,为倒叙排序,默认为正序

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐