python:else语句在循环中的运用

python:else语句在循环中的运用


在学习python循环语句的时候,发现else竟然可以和循环语句使用,但是它却与if中else语句的运行完全不同,有时候你真的感觉掉进这个else陷阱里了,完全不知道该怎么用,那么现在咱们一起去看看吧

一、循环_else示例

1、while_else的运用

# 定义外循环计数器
i = 1
# 循环1-10每个数字
while i <= 10:
    # 定义内循环计数器
    j = 1
    # 循环1-5每个数字,或者说循环5次
    while j <= 5:
        # 判断1-10之间的数/2是否有余数
        if i % 2 == 0:
            # 没有余数那么就跳出内循环,继续外循环
            break
        # 修改内循环计数器
        j += 1
    # 当循环正常结束的时候执行else
    else:
        print("小于")
    i += 1

输出结果:

小于
小于
小于
小于
小于
(1)分析:为什么会输出5个小于?

​ 1、首先,要知道的是,break距离哪个循环最近,那么就作用于哪个循环,上边的是在内循环中,那么就作用于内循环。其次,内循环在外循环中,那么内循环对于外循环来说就是一条语句。python语言尤其注意于代码格式,将外循环中将内循环看作未一条语句,那么问题就非常简单了。

​ 2、其次else与那个循环对齐,那么这个else就属于那个循环,当这个循环正常结束后就会执行else中的语句,否则遇到break就会提前跳出循环,那么就将无法执行else中的语句

​ 3、看代码,外循环要循环10次,内循环要循环5次,也就就是说外循环1次,内循环就要循环5次。在内循环中有一个条件,当 i % 2 == 0,那么就跳出循环,1-10之间能被2整除的就是偶数字,那么当i=2,4,6,8,10这5种情况的时候,就会跳出内循环,此刻else是不会执行,那么执行的5次else是i=奇数的时候,条件不成立,所以会正常结束内循环,最后执行else中的语句。那么就也是说当while循环正常结束的时候才会执行else语句,若被break则将无法执行

(2)分析:将内循环计数器改为j = 6为什么会输出10个小于?

​ 由于内循环条件不成立,无法进入循环体,也就无法循环,所以将无条件执行else中的语句,那么也就是说当条件不成立时,就会无条件执行else中的语句

2、if_else的运用

# 循环10次,拿到1-10之间的数字
for i in range(1,11):
    # 循环5次,拿到1-5之间的数字
    for j in range(1,6):
        # 判断 i的值是否能被2整除
        if i % 2 == 0:
            # 如果是,则跳出内循环
            break
    # 当循环正常结束则执行else语句
    else:
        print("大于")

输出结果:

大于
大于
大于
大于
大于
(1)分析:为什么会输出5个大于?

​ 首先要知道,不管是while循环还是for循环,使用else都是一样的道理,当循环正常结束才会执行else,否则将不会执行else语句。

​ 外循环循环10次,内循环5次,外循环1次,内循环5次。当内循环条件成立执行break,将跳出内循环执行外循环,当条件不成立就相当于没有这个条件,而直接执行else语句。那么也就是说,当循环遇到break就会跳出循环而不执行else,若未遇到则表明循环正常结束,要去执行else语句。

for i in range(1,11):
    for j in range(1,1):
        if i % 2 == 0:
            break
    else:
        print("大于")
(2)分析:为什么会输出10个大于?

​ 同的道理,由于range(1,1)表明没有循环次数,那么for循环就无法执行,所以会去执行else语句。也就是说,当循环未能执行的时候,则会去执行else语句。

3、while循环与for循环的适用场景?

while循环当对循环次数未知的时候,使用while循环再合适不过。当然也可以应用于循环次数已知的情况,但是有时会使代码量增多
for循环当对循环次数已知的情况下使用for循环,并且在迭代列表、元组、字符串和字典的时候for循环显得及其优美,也可以说for循环是为迭代元素量身定制的

二、总结

​ 不管是while循环也好还是for循环也好,当与else一起使用的时候都是一样的道理。当循环正常结束的时候,就会去执行else语句,若碰到break而提前结束,将不会执行else;当循环未能执行的时候,会自动执行else语句


以上均为本人在学习python基础时对一些难理解知识点的总结,如若大家有更好的建议,或者说本篇文章对大家造成了误导,还请大家能够指点,谢谢!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御弟謌謌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值