学习计划记录

待学习内容

 

4.Pytest执行Yaml格式测试用例 - 小蚂蚁测试 - 博客园    pytest 执行yaml测试用例  

shutil 模块

python 自动化测试常用库:  Python自动化测试常用库整理_高级点工的博客-优快云博客_python自动化库 

shutil.copyfile  用法: python shutil.copy()用法 - Norwegian-Wood - 博客园

 pytest + allure + jenkins : Pytest - 标签 - 小菠萝测试笔记 - 博客园 

看jenkins 的学习内容: 测试高级进阶技能系列 - Jenkins、CI/CD - 随笔分类 - 小菠萝测试笔记 - 博客园

魔法方法

12.9 

zipfile 库 压缩解压文件 

Python中zipfile压缩文件模块的基本使用教程_python_脚本之家 (jb51.net)

12.8 

string 方法详解  Python String 方法详解 - 软测小生 - 博客园 (cnblogs.com)

7.20

看完python3的内置函数

7.13(pass)

socket模块

继承

6.17 (pass)

python100 例 :完结

6.16 (pass)

python100 例:8 - 24

isalpha, isalnum, isdigit之间的区别:【python入门到放弃】isdigit()、isalpha()、isalnum() 三个函数的区别和注意点 - 无伞 - 博客园

idalnum: 至少有一个字符且所有字符都是字母数字

一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
def func(n):
    if n == 0:  # 这里设置为0,是因为 本次没有算入到反弹次数内
        high = 100
        return high
    else:
        high = func(n-1)/2
        return high

print(func(10)) # 这里指的是第10次反弹

long = 0
for i in range(0,10):    # 这里是指的第10个落地,是包括第0次的,所以第0次的路径拉出来另算
    if i == 0:
        long = long + func(i)
    else:    # 第10次落地,其实是第9次反弹,并不是第10次反弹
        long = long + 2* func(i)
print(long)

6.15 (pass) 

num = int(input('the num:'))
for i ,j in zip( range(num//2,-1,-1),range(1,num+2,2),): # 控制行数 和 个数
    print(" "*i , "*"*j)  # 只要控制前面的空格就可以了

for k ,t in zip( range(1,num//+1),range(num-2,0,-2),): # 控制行数 和 个数
    print(" "*k , "*"*t)  # 只要控制前面的空格就可以了

6.14   (pass)  

python100 例:25 - 39 

#求100之内的素数 : 又称为质数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除

a = []
for i in range(2, 101):
    for j in range(2,i):
        if (i%j) == 0:
            break
    else:
        a.append(i)
print(a)

6.10  (pass)  

eval 方法能使字符串本身的引号去掉,保留字符的原本属性
eval() 函数也可以直接用来提取用户输入的多个值
a, b = eval(input('input a,b :'))

python100 例:40-61 

6.7  (pass)   

python100 例:62- 68 

杨辉三角:

n = 10
def lst(i, j):
    if j == 1 or i == j: # i 为行, j每行第一个个数
        return  1
    else:
        return lst(i-1, j-1)+ lst(i-1, j) #i 为当前行,j为当前计算的第j个值

for i in range(1, 11):
    for j in range(1, i+1):
        a = lst(i,j)
        print( f" {lst(i,j)} ",end= ' ')
    print()

6.3 (pass)   

collections 模块 Python常用数据结构之collections模块 - Fate0729 - 博客园

python 中set 交集, 并集 ,差集,对称差集 python 集合比较(交集、并集,差集) - Chaman囍 - 博客园

6.2  (pass)  

python100 例:69- 77 

实现列表的index =0 位置的轮询 

a = [1,2,3,4]
a.insert(len(a), a.pop(0))  #注意这里是 len(a)
print(a)

奇偶数求和(1/n,  n相差2 )快捷方法:

def sumfr(n):
    ls = [1/i for i in range(n,0,-2)]
    return sum(ls)

5.31  (pass)  

python100 例: 78 - 85 

题目: 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

i = 0  # 用来计算猴子的数量
j =1  # j为最后一只猴子拿走的桃子数量
x =0 # 当前剩下的桃子的数量
flag = 0  # 用来验证 5只猴子是否都满足条件了,若满足条件则结束while循环
while flag<5:
    x = 4 * j  # 最后剩下的桃子的数量, j为最后一只猴子拿走的数量
    for i in range(0, 5):   # 5只猴子够满足此条件
        if (x%4 !=0):
            flag = 0
            break
        else:  # 因为剩下的桃子数一定要是可以被4整除的
            flag = flag +1
            x = (x/4)*5+1  # 算出上一次留下的桃子数
    j = j+1
print(f'一共有 {x}个桃子, 最后一只猴子拿走的桃子数为:{j} ')

5.27 (pass) 

-count() 方法用于统计字符串里某个字符出现的次数

-python3 中的dateutil模块 Python时间处理-dateutil模块 - 简书

作用:字符串日期转换为易读的日期格式 ; 以及按照一定规则输出日期

- 两个时间戳之间相差的秒数:

c = datetime.datetime.fromtimestamp(b)- datetime.datetime.fromtimestamp(a)
print(c.seconds)

import time
print(time.ctime(time.time())) # 得到本地时间的标准格式
print(time.localtime(time.time())) # 得到本地时间 的元组格式
print(time.asctime(time.localtime(time.time())))  # 得到本地时间的标准格式
print(time.asctime(time.gmtime(time.time()))) # 得到0时区时间

-python100 例: 85- 100 

5.26  (pass) 

encode,decode:   python3之后的版本中移除了unicode类型、默认utf-8 

json  中的dumps ,loads与 dump,load之间的区别 

python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分 - 小明在线 - 博客园

SMTP发送邮件带附件

5.25  (pass) 

正则表达式(1) python3正则表达式指南 - CloudArrows - 博客园

SMTP发送邮件

5.24   (pass) 

正则表达式(2)  https://www.jb51.net/article/166072.htm

5.22 (pass) 

正则表达式

mangodb 的基本语法 : MongoDB基本语法 - mao2080 - 博客园

mysql group by的使用

5.20  (pass) 

类的专用方法:  python:类的专有方法_不怕猫的耗子A-优快云博客_类的专有方法 

命名空间与作用域

mongodb 的基本语法 : MongoDB基本语法 - mao2080 - 博客园

5.19  (pass) 

私有属性,私有方法 静态方法,普通方法,类方法 都可通过对象调用, 静态方法可直接用 类名调用,普通方法只能通过对象调用,类方法可直接 通过类名调用

类的专用方法:  python:类的专有方法_不怕猫的耗子A-优快云博客_类的专有方法 

5.17  (pass)

面向对象

错误与异常

5.12 (pass)

time , datetime模块 

5.11   (pass)

os 模块

zifu = input('请输入你的字符:')
allfile = os.listdir(os.getcwd())

l = []
for i in allfile:
    if os.path.isdir(os.path.join(os.getcwd(), i)):
        if zifu in i :
            l.append(i)
            print(os.path.abspath(os.path.join(os.getcwd(), i)))
print(l)

4.22 (pass)

python 3 字符串编码解码: Python 3 字符串的编码解码,以及str类型、bytes类型_tz_zs的博客-优快云博客

python 标准异常总结: keyerror是什么异常_04.异常处理_摆摊卖爱情的博客-优快云博客

python 面试内容

4.25  (pass)

- 形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字

- 若没有定义__all__  ,那么使用from sound.effects import *这种语法的时候,就不会导入包 sound.effects 里的任何子模块。他只是把包sound.effects和它里面定义的所有内容导入进来(可能运行__init__.py里定义的初始化代码)

模块

输入与输出

文件操作

4.20(pass)

数据结构

4.18 (pass)

迭代器 

函数

4.17(pass)

python 面试内容 : 24 -  45 

python 十进制和 十六进制之间的转化 : python常用的十进制、16进制之间的转换 - 虚生 - 博客园

python 编程第一步  - 循环语句

python collections模块 :  Python标准库collections模块的Counter类_luoyayun361的专栏-优快云博客

python datetime模块:Python datetime模块详解_u011250186的博客-优快云博客_python中的datetime模块

python time 和datetime模块的区别:  Python 标准库中 time 和 datetime 的区别与联系_叫我二当家的专栏-优快云博客_time库和datetime库的区别

repr() 函数将对象转化为供解释器读取的形式

4.14 (pass)

python List 排序的两种方式:https://www.jb51.net/article/108949.htm ,使用内建函数 list.sort 或者是使用 序列类型函数sorted(list)

python number(元组) 

# 字典根据键从小到大排序dict= {"name”:”zs”,”age”:18,”city”:”深圳”,”tel”:”1362626627”}

dict={"name":"zs" ,"age":18,"city":'深圳',"tel":"1362626627"}
list = sorted(dict.items())   # 默认以键排序, 若是以值排序 list = sorted(dict.items() ,key= lambda x: x[1])
print(list)
dict1 = {}
for i in range(len(list)):  #将由元组组成的列表,转化为字典
    dict1[list[i][0]] = list[i][1]
print(dict1)

字典根据值从大到小排:

a =  {'a':1 , 'b':3 , 'c':3, 'd':4}
list =sorted( a.items(), key=lambda item: item[1], reverse=True)
print(list)
dict = {}
for i in range(len(list)):
    dict[list[i][0]] = list[i][1]
print(dict)

4.12  (pass)

python number(元组)   
python number(字典)     

总结:

1. 字符串,元组,数字 是不可变类型,所以只能只用del 来删除整个  字符串,元组,数字; 但是列表,字典 可用del 来删除单个值, 也可以用 clear来清空值 

2.  字典  :  a = {1: [1,2,3], 2:[4,5,6]}      print(a[1])  ,打印的是 [1, 2, 3] ,print(a[2])  ,打印的是[4,5,6] ,这里的1,2 是键值 

3. fromkeys( dict.fromkeys(seq[, value] ) ,seq为字典键值列表

4. 可使用 update 和 直接赋值的方法来更新键对值 

a.update({'age':'24'})
print(a)
a['city'] = 'changsha'

5.a.keys() ,a.values()  可得到迭代器,可使用list来转化为列表

python 引用对象, 深拷贝,浅拷贝Python 直接赋值、浅拷贝和深度拷贝解析 | 菜鸟教程

  • 直接赋值:其实就是对象的引用(别名)。 b = a: 赋值引用,a 和 b 都指向同一个对象

  • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。

  • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象,b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的(需要导入 copy模块)

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表 

4.11 (pass)

python 面试内容 : 13- 23 

13:

list = [1,2,3,4,5]
list1= map(lambda x:x**2 , list)
list = []
for i in list1:
    list.append(i)
print(list)

list2 = filter(lambda x:x>10 ,list)
list3 = []
for i in list2:
    list3.append(i)
print(list3)

lambda函数的使用:Python 中lambda 简单介绍 - Ivy_li4258 - 博客园

字符串和列表去重:  Python 字符串与列表去重 - 光着尐脚丫 - 博客园

random模块常用函数:Python Radom常用函数_小友的博客-优快云博客

python number(字符串)   :内建函数  剩下的内容

python list(列表)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

4.7 (pass) 

python 中 __new__  和 __init__的区别:   Python 中的__new__和__init__的区别 - CuriousZero - 博客园

__new__ : 实例在创建之前被调用,它的任务是创建实例 并返回实例对象

__init__:在实例被创建后调用,来设置实例对象的一些初始值

python 面试内容 :   8-12 

python number(字符串)   :内建函数  ,部分内建函数还没看完

4.6 (pass)

python number(数字)  

python 面试内容 :  1 - 7 

4.4(pass)

闭包  Python深入04 闭包 - Vamei - 博客园

概述: 1. 当一个函数定义在另一个函数内,且使用到了外部函数的参数(该参数被称为 环境变量, 环境变量取值 被保存在函数对象的 __closure__ 属性 ),整个代码块称为闭包 

2.闭包的作用是 可减少 函数需要传递的参数量,提高代码的移植性

4.1 (pass)

@property  , setter ,getter 的用法 https://www.jb51.net/article/202639.htm

num 前后没有下划线的是公有方法

_num 前边有一个下划线的为私有方法或属性,子类无法继承

前边有两个下划线的 一般是为了避免于子类属性或者方法名冲突,无法在外部直接访问

前后都有双下划线的为系统方法或属性

后边单个下划线的可以避免与系统关键词冲突

双下划线的方法或者属性 无法外部直接访问,需要用过getter来访问

class Test:
    def __init__(self):
        self.__num = 100   #无法直接在外部访问

    @property
    def getNum(self):
        return self.__num

    @getNum.setter    #注意名称需要一致
    def getNum(self,num):
        self.__num = num

t = Test()
print(t.getNum)   #需要通过 t.getNum来访问

或者使用 num = property(getNum, setNum) :

class Test:
    def __init__(self):
        self.__num = 100   #无法直接在外部访问

    def getNum(self):
        return self.__num

    def setNum(self,num):
        self.__num = num

    num = property(getNum, setNum)

t = Test()
print(t.getNum)  #得到的是 地址
t.num = 200 
print(t.num) # 可正常得到200

单下划线的方法或者属性 无法被子类继承

class Test:
    def __init__(self):
        self._num = 100   #单下划线的无法被子类继承

    @property
    def getNum(self):
        return self._num

t = Test()
print(t.getNum)   #需要通过 t.getNum来访问

3.7 (pass)

shutil.copyfile  用法: python shutil.copy()用法 - Norwegian-Wood - 博客园

查看代码 

2.24 (pass)

pytest 学习内容  Pytest - 标签 - 小菠萝测试笔记 - 博客园   看(28) -  (29)

2.24  (pass)

pytest 学习内容  Pytest - 标签 - 小菠萝测试笔记 - 博客园   看到了(27)

2.23 (pass)

allure 的使用:

- 使用命令 行来生成 allure报告 ,依次执行:

  pytest  -n auto --alluredir=yourdir                                 #  -n auto:可以自动检测到系统的CPU核数 使用分布式运行用例  ;   --alluredir=yourdir    #只需添加 --alluredir 选项,并提供指向应存储结果的文件夹的路径   例如:pytest -n auto --alluredir .\report    或者 pytest -n auto --alluredir=report , report是你要放置的文件夹

allure serve report    #report 是已生成数据的文件夹

-  创建 environment.properties 文件  放置在 report 文件内,然后生成网页报告,报告内会显示environment 相关内容

2.22  (pass)

pytest  allure的安装教程 Pytest+Allure生成自动化测试报告 - 一步一脚印丶 - 博客园

安装allure报错提示JAVA_HOME is set to an invalid directory解决办法: 安装allure报错提示JAVA_HOME is set to an invalid directory解决办法_textwj的博客-优快云博客_allure安装后提示java没有path

2.21   (pass)

1.pytest.mark.xfail 的使用 : pytest xfail参数详解 - jescs - 博客园

2.可以让那些标记为@pytest.mark.xfail 但实际通过显示XPASS的测试用例被报告为失败的两种方法: 

=   在pytest.ini 文件内 设置xfail_strict = True可以让那些标记为@pytest.mark.xfail 但实际通过显示XPASS的测试用例被报告为失败 ; 

= 或者是设置:  @pytest.mark.xfail(stict = True)

3. 配置文件pytest.ini的详细使用 

= 配置 marks   

=配置 xfail_strict 

=配置 norecursedirs : pytest收集用例的时候,会遍历所有的子目录,将无需遍历的目录,加到ini文件内,并使用 空格 隔开,则可简化其搜索工作

=配置 addopts :可以将较长的命令行配置在ini文件内,要是想执行该命令可直接在cmd中使用; pytest  

= 配置log_cli  : 控制台实时输出日志

=更改测试用例收集规则 

4.  pytest.assume的用法 :Pytest系列- 多重校验插件之pytest-assume的详细使用 - 吹神 - 博客园

使用assert ,若多个断言中,有一个断言失败了,则后续断言不会执行; 若使用assume ,后续断言可继续执行

pycharm提示未识别的话,在该位置alt+回车键,弹出三个选项,选择第二个忽略该错误。
 

5. pytest-xdist 的用法:

= 可以让自动化测试用例分布式执行,从而节省自动化测试时间

=pytest-xdist 是属于进程级别的并发

=分布式执行用例的设计原则  (独立,随机,不影响):  用例之间独立 无依赖关系 ; 用例执行没有顺序,随机顺序可运行 ; 每个用例可重复运行,不影响其他用例

=  使用分布式测试的命令: pytest -s -n auto    ; 其中 -n auto 指的是可自动检测系统的cpu核数 ; 使用auto等于利用了所有的cpu来跑用例,此时的cpu占用率会特别的高

= 指定需要多少个cpu来跑用例: pytest -s -n 2

= 如何让scope=session(或者scope范围级别较高的,例如session) 的fixture在test session中仅仅执行一次 :  : 

可以通过锁定文件,来进行进程中的通信    

= windows 下设置文件锁:python windows 下设置文件锁、多线程_枪枪枪的博客-优快云博客_python 文件锁 

待看:  pytest生成测试报告 - Huny - 博客园

2.17 (pass)

pytest 使用命令行来运行 测试用例:pytest教程之命令行方式运行用例_df0128的专栏-优快云博客_pytest执行命令

2.10 (pass)

pytest mark 标签的使用 pytest之mark的使用 - 奔奔-武 - 博客园

注意: 1.   非命令行的写法:     pytest.main(["-m", "demo", "test_mark.py"])

2. 需要新建 一个文件 来运用  pytest.main(["-m", "demo", "test_mark.py"]) ,若在原文件运行,还是会运行所有的用例

后置固件 yield 和 终结函数 addfinalizer 的区别学习pytest的第五天-----后置固件yield和终结函数addfinalizer_热巴的小哥哥博客-优快云博客_addfinalizer

它和yield相比不同的是:无论是固件的“setup”部分是否出现异常或断言失败,它都会执行; 此外它还支持传入多个函数

1.7  (pass)

sys库  Python编程——sys模块的使用详解(附实例)_橘子女侠-优快云博客_python中sys模块用法

os.system的使用: python基础之os.system函数 - 倥偬时光 - 博客园

1.6 (pass)

round 函数返回浮点数的四舍五入值: :Python round() 函数 | 菜鸟教程

time:Python基础时间库——time - 苦逼运维 - 博客园

strftime(tpl,ts)   : tpl是格式化模板字符串,用来定义输出效果;注意 ts是系统内部时间类型变量 ,所以ts 不可为时间戳(time.time()) 

perf_counter() : 返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用求差值才有意义

不同时间格式的转化:  Python获取秒级时间戳与毫秒级时间戳 - 北方卧龙 - 博客园

os 模块获取相对路径:OS模块获取文件相对路径 - 小小小、小鱼儿 - 博客园

当前目录下 创建同级目录
file_list = os.path.split(os.getcwd())
print(file_list)   #得到 ('F:\\pythonProject1', 'Example')
base_dir = file_list[0]
print(base_dir)
case_file = os.path.join(base_dir, 'result')
os.mkdir(case_file)  #创建了 F:\\pythonProject1\result 

1.5 (pass)

什么是properties文件_sheoh的专栏-优快云博客_properties文件       .properties 文件的使用

1.4    (pass)

在家里的电脑上安装git ,并clone 代码

12.31 (pass)

allure 的使用 :

allure(三十)--allure描述用例详细讲解 - 星空6 - 博客园  

Python学习笔记|python之allure报告_一点点-优快云博客_python的allure


 yaml文件的使用   自动化项目配置或用例文件格式推荐--yaml - hyx20160514 - 博客园

yaml 校验器   YAML、YML在线编辑器(格式化校验)-BeJSON.com 


 

12.10 (pass)

python json.dumps() json.dump()的区别 - 枫飞飞 - 博客园  dumps,dump , load ,loads 的区别

面试中get和post的区别_迟迟 优快云-优快云博客_get和post的区别面试  get post的区别 

12.9 (pass)

将代码同时push到2个远程仓库(github和码云)_Chad97的博客-优快云博客  将代码同时push到2个远程仓库  

12.7- 12.8  (pass)

git的使用:

Git使用详细教程 - seven-ahz - 博客园  git的使用

git-for-windows Mirror git的安装地址

git log 详解_简简单单兔呦-优快云博客_git log  git log详解

git restore指令和git restore --staged 的使用_酸菜。的博客-优快云博客_git restore  git restore指令和git restore --staged 的使用 

https://blog.youkuaiyun.com/asoar/article/details/84111841     在不同状态下的Git撤销&回滚操作  

Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”_段浅浅的博客-优快云博客       Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”

Git恢复之前版本的两种方法reset、revert(图文详解)_游笑天涯-优快云博客_git revert     git reset 和 get revert的区别

Git合并时遇到冲突或错误后取消合并 - 鲁小风lyf - 博客园   git合并的时候出现冲突,取消合并

git clone、git pull和git fetch的用法及区别 - sfornt - 博客园  git clone , git pull ,git fetch 的区别

git stash 用法总结和注意点 - 加个小鸡腿 - 博客园   git stash 的用法    :git stash 不作用于 untracked file (即没有在git 版本控制中的文件,是不能被git stash 存起来的) ,可作用于工作区和暂存区

pycharm配置git--图文教程_coder_oyang的博客-优快云博客_pycharm配置git pycharm 配置git

总结:

git clone :是一个从无到有的克隆操作,不需要进行 git init 初始化。clone来的 .git文件夹内存放着和远程仓库一模一样的版本库记录  :       git clone 版本库的url

比如: git clone GitHub - yangsuqin/testgit

git pull :从远程仓库获取最新版本,在和本地分支合并  : git pull 远程主机名 远程分支名:本地分支名

比如:git pull origin master:branchtest    #将远程主机origin的master分支拉取过来,与本地的branchtest分支合并 ; 如果将冒号和后面的branchtest去掉,则表示将远程origin仓库的master分支拉取下来与本地当前分支合并

git fetch : 更新远程代码到本地仓库   : git fetch 远程主机名 远程分支名 

git fetch origin master # 从远程的origin仓库的master分支下载代码到本地的origin master

git log -p master.. origin/master #比较本地的仓库和远程仓库的区别

git merge origin/master #把远程下载下来的代码合并到本地仓库

git commit操作以及退出日志编辑状态_huakaiba的专栏-优快云博客_gitcommit怎么退出   git退出日志编辑状态

git switch 命令的一些常用的用法 git switch的使用

总结:

1.在工作区的代码还未add :想要撤销修改,可使用 git restore <filename>  ,或者 git restore .   (撤销全部修改)  ; 该操作只改变了工作区

2.工作区的代码add到了暂存区,未commit

·若用户在工作区又加了新的内容,但是想撤销  可使用 git restore <filename>

·若用户add到暂存区的内容有误,想要撤销,可使用 git reset HEAD  或者 git reset HEAD <filename>  ,    该操作只改变暂存区,不改变工作区

3.git commit到了本地仓库,但是未git push到远程仓库:

git reset --hard <commitid>  (回到其中你想要的某个版)

或者  git reset --hard HEAD^ (回退到上一个版本)   

或者  git reset --hard HEAD~100(回退到前100个版本)

4.git push把修改提交到远程仓库

git reset 适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

git revert  适用场景: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西


 

12.3(pass)

Python3 中 random模块 - 暮良文王 - 博客园  random模块的使用

12.2 (pass)

菜鸟教程实例 (hello world —— 求平方根)

19 Python __dict__与dir()区别_忧桑的小兔子-优快云博客_python中的dir()     Python __dict__与dir()区别

https://blog.youkuaiyun.com/qq_35075164/article/details/80918072  type.methodtypes的使用 

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :动态特性(18)

12.1(pass)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :装饰器(17)

11.30  (pass)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :生成器(17)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :迭代器(18)

11.26  (pass)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :包(15)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :深浅拷贝(16)

11.24   (pass)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :异常(13)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :模块(14)

11.23  (pass)

看 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 :面向对象特性(12)

11.16  (pass)

看完全部的内置函数 

11.9  (pass)

看内置函数 callable()  至 vars()  

 Python学习进阶 - jack_Meng - 博客园   的python 高级阶段 : 面向对象(11)

11.5   (pass)

Python可迭代对象,迭代器,生成器的区别 完全理解Python迭代对象、迭代器、生成器 - FooFish   

1. 可迭代对象:1.集合数据类型 list tuple dict set str  2.generator,包括生成器和带有yield的genarator  function,这些可直接作用于for循环的对象统称为可迭代对象:iterable
2.生成器是迭代器对象,但是列表字典字符串虽然是可迭代的,但是不是迭代器,可将这些使用iter()函数来变成迭代器
3.可以被next函数调用,并不断返回下一个值的对象,被称为迭代器
4.生成器也是迭代器

如果想验证是否是迭代器,可使用isinstance()  判断是否是可迭代对象: 

 from  collections  import Iterable 

isinstance( abcde',  Iterable) 

注意:生成器是可迭代对象,迭代器不一定是生成器。并且迭代器无法回取,只能向前取值。
注意:一个对象具有 iter 方法的才能称为可迭代对象,使用yield生成的迭代器函数,也有iter方法。凡是没有iter方法的对象不是可迭代对象,凡是没有__next__()方法的不是生成器。(这里的方法都是魔法方法,是内置方法,可以使用dir()查看)

11.4   (pass) 

看完内置函 数

看 get set ,property的用法     python的get、set方法_qq_30148167的博客-优快云博客_python setget

11.2 - 11.3  (pass)

看完菜鸟教程 ,见下图       

10月28之前    (pass) 

1.Jmeter接口测试(七)用例数据分离 - hancel秋 - 博客园  ,参考该博主的博客,进行实践操作     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值