当前位置: 首页 > article >正文

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}")



http://www.kler.cn/a/579635.html

相关文章:

  • vscode带参数调试
  • IU5380C同步降压型2~4节多类型锂电池充电管理IC
  • 题解:CF633D Fibonacci-ish
  • Linux 进程管理 -- 进程的替换 (补进程创建)
  • MySQL环境安装详细教程(Windows/macOS/Linux)
  • 聚焦两会:科技与发展并进,赛逸展2025成创新新舞台
  • CI/CD—Jenkins cron定时任务表达式
  • 【微知】qemu如何配置ctrl+c不退出qemu系统?(-chardev stdio,id=char0,signal=off)
  • Go泛型学习笔记
  • C++二叉搜索树代码
  • 旋转验证码截图识别
  • ⭐LeetCode(数学分类) 48. 旋转图像——优美的数学法转圈(原地修改)⭐
  • Easysearch 使用 AWS S3 进行快照备份与还原:完整指南及常见错误排查
  • 蓝桥杯[每日两题] 真题:好数 神奇闹钟 (java版)
  • 【微知】如何根据内核模块ko查看所依赖其他哪些模块?(modinfo rdma_ucm |grep depends)
  • 【Java学习】包装类
  • 基于策略模式的智能提示语生成器设计与实现——以Tkinter GUI开发为例
  • 一文了解汽车图像传感器
  • 1-002:MySQL InnoDB引擎中的聚簇索引和非聚簇索引有什么区别?
  • 逐梦DBA:Linux下MySQL字符集的处理