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

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

前言

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

image.png

循环语句

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

while循环

一般句式

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

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

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

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

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

    • 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函数
  • 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
  • for循环经常跟range()函数混在一起;range()函数是一个左闭右开的条件函数
for i in range(5):
    print(i)

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

# 输出:
1
2
3
4
  • 再回忆之前说的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
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
  • 上面的例子如果换成continue,那么就无限循环,它还没中止,自己就终止了。
  • 注意1:所有从for或while跳出的循环都不会再执行后面的else;
  • 注意2:continue和break的位置如果在某块代码前,那么它后面的代码不会被执行。

i = 1
while i < 10:
    if i == 3:
        continue  
        # 不会执行后面的i+=1,i永远是3,然后就在这里无限循环
        print("执行不到")
    i+=1
  • 所以要想 它继续,就在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的那句不执行!!!
  • 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
pass关键字

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


if i in range(4):
    pass

# 执行什么也不会,但是它会遍历完
思考一下:while 能不能搭配 x in xxx呢?
相关文章
|
11月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
927 113
|
11月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
757 0
|
11月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
786 1
|
11月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
811 0
|
11月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
477 0
|
11月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
534 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
11月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
1141 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
12月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
583 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
12月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
641 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架

推荐镜像

更多