Python的for循环和while
1、for循环:
for循环的使用场景:
遍历某个数据对象(可迭代的数据类型-字符串、列表、元组、字典),取到里面的每个元素进行其他处理。
- 遍历:生活中案例类比:实体店-衣服一排排架子,从左到右1件件拿出来 --进行后面处理:看一下/试一下
1、语法:
for 变量名字 in 可迭代的数据类型:
循环体 --循环执行的子代码
- 变量名:按照命名规则取,这个变量不需要提前定义
- 依次取到 后面可迭代数据类型 中的每一个数据,赋值给前面 变量
2、思考:for循环依次取到每个元素,什么时候会结束循环?
- 取完最后一个元素就结束循环。
- 循环次数 = 元素个数
# if your_tech in master_QA:
# print("测试大佬,薪资16k+")
#
# print("=======================")
3、for循环遍历字典
- 登录功能:多条用例,每条用例数据保存在一个字典里,多个字典保存list列表。
- 每条用例存储形式-字典:{“case_id”: 1, “title”: “登录成功”, “data”: {“username”: “yuandian”, “pwd”: “123456a”}}
- 需要从每条用例里面分别取到数据,去进行登录执行操作。
case = {"case_id": 1, "title": "登录成功", "data": {"username": "yuandian", "pwd": "123456a"}}
# 这里for循环直接遍历字典,i取到key
for i in case:
print(i)
# for取到字典的value,怎么写?
# 方式一
for i in case:
# print(case[i])
print(case.get(i)) # 通过key取值
# 方式二
for j in case.values():
print(j)
# 方式三
print(case.items())
for k, v in case.items(): # for循环 + 元组解包 k, v = ('case_id', 1)
print(f"key的值是{k},value值是{v}")
4、for循环默认下,取完循环对象中所有数据,才停止循环;如果想要控制循环次数:可结合if使用 + 中断语句
for循环跳出循环 - 中断循环
break: 直接跳出整个for循环,当前循环break后面代码不会执行! 且后面的循环也不会继续!
continue: 跳出本次循环,本次循环continue后面的代码不会执行!但后面的循环会继续!
# 需求2:只需要找到第一个支付模块的用例,来执行,后面用例都不执行。--提前结束循环
for case in cases:
if case["模块"] == "支付":
print(f"执行测试用例:{case}")
break # 直接跳出整个for循环,当前循环break后面代码不会执行! 且后面的循环也不会继续!
print("===============")
# 需求3:只要支付模块,不执行,其他的用例都要执行。
for case in cases:
if case["模块"] == "支付":
continue # 跳出本次循环,本次循环continue后面的代码不会执行!但后面的循环会继续!
print(f"执行测试用例:{case}")
print("===============")
for循环嵌套:多层for循环,一般不会超过2层。
- 一定要内层循环都取完了所有数据之后,再继续执行外层循环。
需求 - list里面多条用例,取到每条用例的用户名和密码出来–后面登录执行操作
思路:
1、for循环遍历cases,依次取到每一条用例 – 每条用例是字典
- 取到每条用例data的值 – 字典取值
2、再一层for循环遍历字典–取用户名及密码。 通过字典取username和pwd - key的value值
cases = [
{"case_id": 1, "title": "登录成功", "data": {"username": "yuandian", "pwd": "123456a"}},
{"case_id": 2, "title": "用户名不存在", "data": {"username": "yuan", "pwd": "123456a"}},
{"case_id": 3, "title": "密码错误", "data": {"username": "yuandian", "pwd": "123456"}}
]
for case in cases:
# print(case)
case_data = case["data"] # {'username': 'yuandian', 'pwd': '123456a'}
#print(case_data)
for k,v in case_data.items():
# for k, v in case_data.items():
# print(f"{k}的值是:{v}")