前言
自从学了python自动化测试以来,已过了几个春秋,不管岁月如何境迁,作者也不忘在工作中温故而知新,每有会意便欣然忘食;有幸感激曾经的自己系统的学过python基础知识,同时也有在工作中给有兴趣的小伙伴们进行了分享。不过也发现了当前工作环境的现状,时间受重复劳动的支配,也就是说没有工作之余的其他时间用来学习,毕竟互联网节奏摆在这儿,那么回到家呢,又全靠自觉,故而收效甚微;不过总的来说也为测试技能打开新的一扇门!
而今借此掘金活动,想着整理及分享一套关于python接口自动化测试框架的系统知识,万事开头难,得先从python基础开始,那么编程的基础是先从变量开始,而变量又分不同数据类型……
字符串str
字符串是python中最常用的数据类型之一,一般使用单引号或双引号表示,即给变量分配一个值即可(python中变量不需要定义数据类型)但是作者根据实际经验,字符串常用做格式化输出或某些算法中体现,在程序内部用来做比较运算,输出呢,如日志则是格式输出的表现形式。
字符串的相关使用方法
- 创建字符串
#!/bin/python3
str_1 = '这是一个字符串'
str_2 = "这是第二个字符串"
print(str_1+"\n"+str_2) # 会换行输出
# 这是一个字符串
# 这是第二个字符串
- 访问字符串的值之索引取值
#!/bin/python3
str_1 = 'AbcDefG'
# 索引取值,使用中括号,且索引从0开始
print(str_1[2])
- 访问字符串的值之切片取值
#!/bin/python3
str_1 = 'AbcDefG'
# 切片取值需要注意的是左闭右开,也就是右边索引位-1
# 实际取值是第3-4个:cD,索引4是取不到的
print(str_1[2:4])
- 字符串切片取值支持公差选值
#!/bin/python3
str_1 = 'AbcDefG'
# 表示从1位索引开始,每隔2个取值,直到无值可取
# 公式[n:m:k]
print(str_1[1::2]) # 结果为bDf
- 字符串支持反向取
#!/bin/python3
str_1 = 'AbcDefG'
# 反向取值,是从-1开始的
print(str_1[-1]) # 输出:G
- 查找字符在字符串中索引位置方法
#!/bin/python3
str_1 = 'AbcDefG'
print(str_1.index("c")) # 输出:2
tips:index方法如果字符在字符串中不存在则会抛异常
# find方法
print(str_1.find("cc"))
tips: find方法如果没有找到默认返回-1
- 字符串加号+拼接
#!/bin/python3
str_1 = 'AbcDefG'
str_2 = "hijkLM"
print(str_1+str_2)
- 成员运算符:in \ not in
str_2 = "lemon python class "
print("成员运算符,条件判断:", 'i' not in str_2, 'o' in str_2) # 输出:False,True
- 字符串join拼接
#!/bin/python3
str_1 = "".join(["a","2","A"])
print(str_1) # 输出:a2A
# 注意join方法的参数必须是可迭代数据类型list,且必须子元素是字符串类型
- 字符串常用方法之分割split
#!/bin/python3
str_1 = 'AbcDcfGdcs'
print(str_1.split("c"))
# split分割后返回的是list数据类型
- 字符串常用方法之替换replace
#!/bin/python3
str_1 = 'AbcDcfGdcs'
print(str_1.replace("c","C"))
- 字符串常用方法之求长__len__
#!/bin/python3
str_1 = 'AbcDcfGdcs'
print(str_1.__len__())
- 字符串常用方法之去除空格strip
#!/bin/python3
str_1 = 'AbcD fGdcs '
print(str_1.strip(" "))
# 它去除首尾的空字符
- 还有一些大小写转换的方法:upper、lower、swapcase
字符串格式化输出方式
- %百分号输出
#!/bin/python3
str_1 = "joe"
print("我叫%s" %str_1) # 输出:我叫joe
# 注意%s可以接收任意数据类型
print("我叫%s,今年%d岁" %(str_1,18)) # 输出:我叫joe,今年18岁
- format函数
#!/bin/python3
str_1 = "joe"
print("我叫{}".format(str_1)) # 输出:我叫joe
print("我叫{},今年{}岁".format(str_1,19)) # 输出:我叫joe,今年19岁
print("我叫{0},体重:{2}kg,今年{1}岁,".format(str_1,19,60.5)) # 输出:我叫joe,体重60.5kg,今年19岁
print("我叫{},今年{}岁,体重:{:.2f}kg,".format(str_1,19,60.5)) # 输出:我叫joe,今年19岁,体重:60.50kg,
- F变形输出
#!/bin/python3
str_1 = "joe"
str_2 = F"我叫{str_1}"
print(str_2) # 输出:我叫joe
# tips:f大小写不重要
总结
关于字符串创建,成对的三个单引号或者三个双引号,表示的是注释字符串;既然已知数据类型,那么对于变量的命名规范参考pep8规范即可。
提醒一下关于python字符转义和Unicode转码;在字符串前+r表示里面的字符都是正常输出,如:str_1=r"换行符号失效\n" ,那么在字符串定义前+u表示Unicode编码的字符可以正常输出,如:str_1=‘Hello\u0020World !’, print(str_1) ,输出:Hello World !。
- 特殊字符
\n \t \r,转义 在字符串前加 r/R 或反斜杠\,转移之后就是普通的字符串输出\n
特殊字符 \ 在行尾,表示续行,用于一行代码过长时使用,其他时候为转义:’ 单引号、"双引号 \000空格
str_2 = r"python\nclass"
print(str_2) # 输出:python\nclass