前言
在了解了if_else判断的语法后,会忍不住想到where这种循环的语法,今天一起来了解学习下循环的语法。
if_else判断的特点是若条件满足,则执行一次。
而while循环的特点是若条件成立,则一直执行,直到条件不成立或者遇到break关键字才会终止执行。
提示:以下是本篇文章正文内容,下面案例可供参考
一、while循环
1.语法
while 判断条件
判断条件成立,执行的代码
判断条件成立,执行的代码
不在while缩进范围内的代码不会循环执行。
2.示例
a = 5
while a > 0:
print('a的当前值为%s,a大于0' % a)
a -= 1
print('不在缩进范围')
输出结果:
a的当前值为5,a大于0
a的当前值为4,a大于0
a的当前值为3,a大于0
a的当前值为2,a大于0
a的当前值为1,a大于0
不在缩进范围
二、for循环
1.语法
for 变量 in 字符串:
代码
for循环也称为for遍历,会将字符串中的字符全部取到,变量就是字符串中的每一个字符。
字符串可以替换为其他的可迭代对象,或者数值范围,变量同理,也为迭代对象中的每一个组成成员。
2.示例-字符串
for i in 'hello':
print(i)
输出结果:
h
e
l
l
o
for循环遍历字符串中的每一个 字符
3.示例-range函数
range(n) 会生成[0,n)的整数序列,不包含n
range(a,b,step) 会生成[a,b)的整数序列,不包含b,每个数字之间的间隔(步长)是step,默认步长为1,可以省略不写
3.1for循环结合range(n):
for i in range(5):
print(i)
输出结果:
0
1
2
3
4
3.2for循环结合range(a,b):
for i in range(1, 5):
print(i)
输出结果:
1
2
3
4
3.3for循环结合range(a,b,step):
for i in range(1, 5, 2):
print(i)
输出结果:
1
3
三、循环中的break和continue
提示:这两个关键字在循环中均适用,下面只用for循环来做例子
1.适用场景
break是结束本层级循环。
continue是结束本层级的本次循环,继续执行本层级的下一次循环。
2.示例
break
计划绕操场跑5圈,到第4圈时跑不动了,后面的也不跑了。
for i in range(1, 6):
if i == 4:
print("跑不动了,后续的也不跑了")
break # 终止循环的执行
print("在跑第%d圈" % i)
输出结果:
在跑第1圈
在跑第2圈
在跑第3圈
跑不动了,后续的也不跑了
countinue
计划绕操场跑5圈,到第4圈时脚抽筋,休息一圈,后面的圈接着跑。
for j in range(1, 6):
if j == 4:
print("发现脚抽筋,这圈不跑了了")
continue # 结束本次循环,继续下一次循环
print("在跑第%d圈" % j)
输出结果:
在跑第1圈
在跑第2圈
在跑第3圈
发现脚抽筋,这圈不跑了了
在跑第5圈
3.注意:如果是在while循环中,需要将修改变量值的步骤放到countinue前面
countinue错误版本
计划绕操场跑5圈,到第4圈时脚抽筋,休息一圈,后面的圈接着跑。
结果只会输出前三圈,到了第四圈后a的值不会改变,所以会进入死循环。
a = 1
while a < 6:
if a == 4:
continue
print("在跑第%d圈" % a)
a += 1
输出结果:
在跑第1圈
在跑第2圈
在跑第3圈
countinue正确版本
a = 0
while a < 6:
# 修改变量值的步骤提前
a += 1
if a == 4:
print("发现脚抽筋,这圈不跑了了")
continue
print("在跑第%d圈" % a)
输出结果:
在跑第1圈
在跑第2圈
在跑第3圈
发现脚抽筋,这圈不跑了了
在跑第5圈
在跑第6圈
四、循环嵌套
提示:循环嵌套在for循环和while循环中均适用,下面只用for循环来做例子
1.简单的循环嵌套
连续跑3天,每天都跑5圈
for k in range(1, 4):
print(f'第{k}天')
for i in range(1, 6):
print("在跑第%d天的第%d圈" % (k, i))
输出结果:
第1天
在跑第1天的第1圈
在跑第1天的第2圈
在跑第1天的第3圈
在跑第1天的第4圈
在跑第1天的第5圈
第2天
在跑第2天的第1圈
在跑第2天的第2圈
在跑第2天的第3圈
在跑第2天的第4圈
在跑第2天的第5圈
第3天
在跑第3天的第1圈
在跑第3天的第2圈
在跑第3天的第3圈
在跑第3天的第4圈
在跑第3天的第5圈
2.break在循环嵌套中只能结束本层级循环,无法结束外层的循环
连续跑3天,每天都跑5圈,每天的第4圈都跑不动了,后面的也不跑了。
for k in range(1, 4):
print(f'第{k}天')
for i in range(1, 6):
if i == 4:
print("跑不动了,后续的也不跑了")
break # 终止循环的执行
print("在跑第%d天的第%d圈" % (k, i))
输出结果:
第1天
在跑第1天的第1圈
在跑第1天的第2圈
在跑第1天的第3圈
跑不动了,后续的也不跑了
第2天
在跑第2天的第1圈
在跑第2天的第2圈
在跑第2天的第3圈
跑不动了,后续的也不跑了
第3天
在跑第3天的第1圈
在跑第3天的第2圈
在跑第3天的第3圈
跑不动了,后续的也不跑了
3.continue是结束本层级的本次循环,继续执行本层级的下一次循环,和外层的循环无关。
连续跑3天,每天都跑5圈,每天的第4圈都脚抽筋,跑不了了,后面的可以继续跑。
for k in range(1, 4):
print(f'第{k}天')
for j in range(1, 6):
if j == 4:
print("发现脚抽筋,这圈不跑了了")
continue # 结束本次循环,继续下一次循环
print("在跑第%d天的第%d圈" % (k, j))
输出结果:
第1天
在跑第1天的第1圈
在跑第1天的第2圈
在跑第1天的第3圈
发现脚抽筋,这圈不跑了了
在跑第1天的第5圈
第2天
在跑第2天的第1圈
在跑第2天的第2圈
在跑第2天的第3圈
发现脚抽筋,这圈不跑了了
在跑第2天的第5圈
第3天
在跑第3天的第1圈
在跑第3天的第2圈
在跑第3天的第3圈
发现脚抽筋,这圈不跑了了
在跑第3天的第5圈
五、循环else
1.语法
for 变量 in 字符串:
if 判断条件:
代码 # if 判断条件成立会执行
else:
代码 # if判断条件不成立,会执行
else:
代码 # for 循环代码运行结束,但是不是被break终止的时候会执行
for循环的else中的代码只有循环不是被break终止的才能执行。换句话说,只要循环遍历完,依然没有被break终止,则会执行for循环的else下的代码。
2.示例-被终止不执行else
my_str = 'hello python'
for i in my_str:
if i == 'p':
print("包含p")
break
else:
print("不包含p")
输出结果:
包含p
3.示例-执行else
my_str = 'hello java'
for i in my_str:
if i == 'p':
print("包含p")
break
else:
print("不包含p")
输出结果:
不包含p