荐 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基础时对一些难理解知识点的总结,如若大家有更好的建议,或者说本篇文章对大家造成了误导,还请大家能够指点,谢谢!
本文地址:https://blog.csdn.net/abraham_ly/article/details/107155602