欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-05 11:06:16
python:else语句在循环中的运用​在学习python循环语句的时候,发现else竟然可以和循环语句使用,但是它却与if中else语句的运行完全不同,有时候你真的感觉掉进这个else陷阱里了,完全不知道该怎么用,那么现在咱们一起去看看吧一、循环_else示例1、while_else的运用# 定义外循环计数器i = 1# 循环1-10每个数字while i <= 10: # 定义内循环计数器 j = 1 # 循环1-5每个数字,或者说循环5次 wh...

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基础时对一些难理解知识点的总结,如若大家有更好的建议,或者说本篇文章对大家造成了误导,还请大家能够指点,谢谢!

本文地址:https://blog.csdn.net/abraham_ly/article/details/107155602