测试学习—python(四)
提要
- 元组
- 字典
元组 tuple
- 作用:
- 元组中可以存放任意类型的数据
- 元组中可以存放任意多个数据
- 在函数的传参或返回值中使用,保证数据不会被修改。
- 元组 与列表的区别
- 元组中数据不能改变
- 元组使用(),列表使用()
- 格式
- 使用类实例化的方式
- 直接使用()方式
# 1, 类实例化的⽅式
# 1.1 定义空元祖(不会使⽤的)
tuple1=tuple()
# 1.2 类型转换
# 可以将列表转换为元组, 只需要将 [], 变为 (), 同时 可以将元组转换列表 , 将() 变为 []
tuple1=tuple([1,2,3])
# 转换字符串, 和列表中⼀样,只是将列表的[] 变为()
tuple1=tuple('straaa')
# 2. 直接使⽤ () 定义
tuple1=tuple(1.'xiao',1.222,False)
# 3. 特殊点, 定义只有⼀个数据的元组时, 数据后边必须有⼀个逗号
tuple1=tuple(1,)
- 常用查看方法
- 在元组中使用下标和切片获取数据
- 在元组中使用index()方法,查找数据
- 在元组中使用count()方法,统计数据出现的次数
- 在元组中使用in 操作,判断数据是否存在
- 使用len()方法统计个数
字典 dict
- 作用:
- 字典 dict, 字典中的数据是由键(key)值(value)对组成的(键表示数据的名字, 值就是具体的数据)
- 在字典中⼀组键值对是⼀个数据, 多个键值对之间使⽤ 逗号隔开
变量 = {key: value, key:value, …} - ⼀个字典中的键是唯⼀的,不能重复的, 值可以是任意数据
- 字典中的键 ⼀般都是 字符串,可以是数字, 不能是列表
- 格式
- 使用类实例化方式
mydict=dict()
- 直接使用{}定义
# 空字典
mydict={}
#非空字典
mydict={"name":"小明","age0":18,"height":1.71,"is_men":Ture,"like":['抽烟','喝酒'.'烫头']}
- 规则:dict不能转列表和元组
增加和修改操作
- 格式:字典[键]=数据值
- 如果键已经存在,就是修改数据值
- 如果键不存在,就是添加数据(即添加键值对)
删除操作 del
- 删除指定键值对
- del 字典[键]
- 字典.pop(键)
#删除字典中的数据(键值对)
mydict.pop('key')
#删除字典中的列表中的数据(这里pop(0),0为要删除的内容在列表'key'中的下标,)
mydict['key'].pop(0)
- 清空
- 字典.clear()
查询-根据键获取对应的值
- 与其他容器(列表,元组)的区别
字典中没有下标的概念,想要获取数据值,要使⽤ key(键)来获取 - 格式:
- 字典[键]
如果键存在 返回键对应的数据值,
如果键不存在, 会报错 - 字典.get(键)
如果键不存在,返回的是None
字典遍历
- 对字典的键进行遍历 keys()
for 变量 in 字典:
print(变量)
for 变量 in 字典.keys()
print(变量)
#遍历键
for k in dict:
print(k)
#遍历键 keys()方法
for k in dict.keys():
print(k)
- 对字典的值进行遍历 value()
for v in dict.values()
print(v)
- 对字典的键,值遍历 items()
for k,v in dict.items()
print(k,v)
容器总结
# 1. 字符串, 列表, 元组 ⽀持加法运算
str1 = 'hello' + ' world' # 'hello world'
list1 = [1, 2] + [3, 4] # [1, 2, 3, 4]
tuple1 = (1, 2) + (3, 4) # (1, 2, 3, 4)
# 2. 字符串 列表 元组 ⽀持 乘⼀个数字
'hello ' * 3 # ===> 'hello hello hello '
[1, 2] * 3 # ===> [1, 2, 1, 2, 1, 2]
(1, 2) * 3 # ===> (1, 2, 1, 2, 1, 2)
# 3. len() 在 容器中都可以使⽤
# 4. in 关键字在容器中都可以使⽤, 注意, 在字典中判断的是字典的键是否存在
案例
列表的增删改查统计操作
'''
列表增删改查统计
'''
mylist=["hello","python","itcase","hello"]
#增
mylist.append("heima")
print(mylist)
#删
mylist.pop(0)
print(mylist)
mylist.remove("hello")
print(mylist)
#改
mylist[0]="chuanzhi"
print(mylist)
#查下标
a=mylist.index("chuanzhi")
print(a)
#查数据
b=mylist[2]
print(b)
c=mylist.count("hello")
print(c)
#查长度
d=len(mylist)
print(d)
测试数据收集函数
要求:
- 自定义程序, 实现如下要求
- 能够获取测试人员输入的信息(登录/测试)
- 获取每组测试数据的用户名,密码和预期结果 组成一下的数据格式进行打印
[(), (), ()] 或者 [[], [], []]
'''
1. 自定义程序, 实现如下要求
2. 能够获取测试人员输入的信息(登录/测试)
3. 获取每组测试数据的用户名,密码和预期结果 组成一下的数据格式进行打印
[(), (), ()] 或者 [[], [], []]
'''
my_dict = {
"登录": [
{
"desc": "正确的用户名密码",
"username": "admin",
"password": "123456",
"expect": "登录成功"
},
{
"desc": "错误的用户名",
"username": "root",
"password": "123456",
"expect": "登录失败"
},
{
"desc": "错误的密码",
"username": "admin",
"password": "123123",
"expect": "登录失败"
},
{
"desc": "错误的用户名和密码",
"username": "aaaa",
"password": "123123",
"expect": "登录失败"
}
],
"注册": [
{
"desc": "注册1",
"username": "abcd",
"password": "123456"
},
{
"desc": "注册1",
"username": "xyz",
"password": "123456"
}
]
}
# 1. 自定义程序, 实现如下要求
# 2. 能够获取测试人员输入的信息(登录/测试)
def ceshiinform():
inform=[]
mytuple=()
opt=input("请输入需要获取的信息:")
print(f"想要获取的信息为{opt}")
if opt=='注册':
print('获取注册信息如下:')
#i遍历的是列表(my_dict.get('注册'))中的元素,i是字典类型
for i in my_dict.get('注册'):
mytuple=(i.get('username'),i.get('password'))
inform.append(mytuple)
print(inform)
elif opt=='登录':
print ('获取登录信息如下:')
for i in my_dict.get('登录'):
mytuple=((i.get('username')),i.get('password'))
inform.append(mytuple)
print(inform)
# 3. 获取每组测试数据的用户名,密码和预期结果 组成一下的数据格式进行打印
# [(), (), ()] 或者 [[], [], []]
ceshiinform()