python中的while和for以及循环else结构


前言

在了解了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
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值