在学习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个小于?
"htmlcode">
# 循环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语句