Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while

简介: 本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。

前言

很开心,python学到循环语句了,也越来越好玩了,学到这儿,基本上也能处理一些流水线的工作了,只是稍欠装饰显得不那么灵活、复用性不高。

image.png

循环语句

python中循环语句有for和while;如上图所示,循环基本都需要做点什么,因为不是需要所有数据,也会带上if条件控制一下输出。

while循环

一般句式

# 作为条件,为True才执行里面的代码块,为false则退出循环
while (condition): 
    print("执行语句")
AI 代码解读

提示一下:python中没有do…while循环

  • 似乎python大多数使用者,没有使用while…else这样的条件
while False:
    print("不会被执行")
else:
    print("当while条件为False时才执行")
AI 代码解读
  • 示例:求1-100之间的和, 就使用while循环来完成
dig=100

sum=0
count=1
while count <=dig:
    sum+=count
    count+=1

print("1到{}之间的和为:{}".format(dig,sum))
# 输出结果:1到100之间的和为:5050
AI 代码解读
  • 代码浅析:

    • count作为while循环的计数器,它不能超过目标值dig;否则退出循环,而sum+=count,每次都会sum+count之后重新赋给sum
  • 当然这是咱们学习之后的成果,那怎么确定结果是正确的呢?

    • 两个办法,自己拿笔算一算,开什么玩笑;当然是找规律啦,除去100和50,首尾相加得100的数有49对,如:1+99、2+98、3+97,以此类推,直到49+51,也就是按顺序会有49对首尾相加得100,再加上100+50,可不就是5050
    • 第二个方法自然是用程序来验证,python提供了sum()、range()函数,这里需要批评一下了,在上面的例子中使用了sum=0,也就是它会覆盖了原来的sum()函数,所以在当前代码块中不能使用sum()函数来求和。
# sum()函数接的参数必须是可迭代类型,str除外
s=sum(range(1,101))

print(s) # 输出:5050

# 后面在内置函数再介绍range函数
AI 代码解读
  • while True: 这个循环有一个特殊场景,就是在客户端需要实时请求,无限循环则非常有用。
for循环

这是个有点特殊的循环,因为它是for…in的组合,in是啥?咱们的成员运算符啊,其实for就是while,只不过condition换成了x in xxx:而已,所以它不能是for True却能x in xxx;思考一下:while 能不能搭配 x in xxx呢?

  • for循环遍历list或者字符串等序列类型
a="1234567"

for i in a:
    print(i)
# 输出:
1
2
3
4
5
6
7
AI 代码解读
  • for循环经常跟range()函数混在一起;range()函数是一个左闭右开的条件函数
for i in range(5):
    print(i)

# 输出:
0
2
3
4
AI 代码解读
range()函数
  • range()函数默认从0开始,可以指定区间:range(1,5)
for i in range(1,5):
    print(i)

# 输出:
1
2
3
4
AI 代码解读
  • 再回忆之前说的str、tuple、list类型对于切片取值的的公式:(nⓂ️k),只不过在range中需要变成逗号:range(n,m,k),m>n,k为步长
# 奇数
for i in range(1,10,2):
    print(i)

# 输出:
1
3
5
7
9
AI 代码解读
continue和break

字面意思,一个是continue继续循环,一个break是中断循环

  • 前面举例说while True: 是个无限循环,如果配以if条件控制,当满足条件时break跳出循环
# cmd进入python交互命令模式

>>> count=1
>>> while True:
...     print(count)
...     if count==4:
...         print(count)
...         break
...     count+=1
...
1
2
3
4
4
AI 代码解读
  • 上面的例子如果换成continue,那么就无限循环,它还没中止,自己就终止了。
  • 注意1:所有从for或while跳出的循环都不会再执行后面的else;
  • 注意2:continue和break的位置如果在某块代码前,那么它后面的代码不会被执行。

i = 1
while i < 10:
    if i == 3:
        continue  
        # 不会执行后面的i+=1,i永远是3,然后就在这里无限循环
        print("执行不到")
    i+=1
AI 代码解读
  • 所以要想 它继续,就在continue之前加入条件:i+=1
# cmd输入python进入交互模式:

>>> i = 1
>>> while i < 10:
...     print(i)
...     if i == 3:
...         i += 1
...         continue
...         print("执行不到的语句")
...     print("当i==3,这句不执行,{}".format(i))
...     i += 1
...
1
当i==3,这句不执行,1
2
当i==3,这句不执行,2
3
4
当i==3,这句不执行,4
5
当i==3,这句不执行,5
6
当i==3,这句不执行,6
7
当i==3,这句不执行,7
8
当i==3,这句不执行,8
9
当i==3,这句不执行,9

# 是不是漏掉了i==3的那句不执行!!!
AI 代码解读
  • break关键字也来一个例子:
# cmd输入python进入交互模式

>>> i = 1
>>> while i < 10:
...     print(i)
...     if i == 3:
...         i += 1
...         break
...         print("执行不到的语句")
...     i += 1
...     print("只会执行到i==3")
... else:
...     print("从上面循环中跳出,不会执行这里的代码块")
...
1
只会执行到i==3
2
只会执行到i==3
3
AI 代码解读
pass关键字

它是空语句,什么也不干,就是占位;保持结构的完整性。


if i in range(4):
    pass

# 执行什么也不会,但是它会遍历完
AI 代码解读
思考一下:while 能不能搭配 x in xxx呢?
目录
打赏
0
1
1
1
14
分享
相关文章
|
3月前
|
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
288 61
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
Python自动化Office文档处理全攻略
本文介绍如何使用Python自动化处理Word、Excel和PDF文档,提升办公效率。通过安装`python-docx`、`openpyxl`、`pandas`、`PyPDF2`和`pdfplumber`等库,可以轻松实现读取、修改、创建和批量处理这些文档。具体包括:自动化处理Word文档(如读取、修改内容、调整样式),Excel文档(如读取、清洗、汇总数据),以及PDF文档(如提取文本和表格数据)。结合代码示例和实战案例,帮助你掌握高效办公技巧,减少手动操作的错误率。
56 1
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
118 16
Python时间序列分析:使用TSFresh进行自动化特征提取
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
AIOpsLab 是微软等机构推出的开源框架,支持云服务自动化运维,涵盖故障检测、根本原因分析等完整生命周期。
181 13
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
AGUVIS:指导模型实现 GUI 自动化训练框架,结合视觉-语言模型进行训练,实现跨平台自主 GUI 交互
AGUVIS 是香港大学与 Salesforce 联合推出的纯视觉 GUI 自动化框架,能够在多种平台上实现自主 GUI 交互,结合显式规划和推理,提升复杂数字环境中的导航和交互能力。
155 8
AGUVIS:指导模型实现 GUI 自动化训练框架,结合视觉-语言模型进行训练,实现跨平台自主 GUI 交互
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
954 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
142 15
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
105 3
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
51 14
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等