看代码时发现的一种写法,学习一下。
几乎所有语言中,else的常用搭配就是if,而在python中else还可以和循环搭配使用,让代码更加pythonic。
先总结说明下:else与循环语句搭配使用时,只有当循环体非正常执行完毕 (被中断执行,如执行了break或exit) 时else才不会执行,否则else部分在循环体正常执行完毕后执行。
需要注意 循环体中执行continue & 初始时不满足循环条件 都不算被中断,可正常执行else语句。
下面分别拿for循环和while循环测试下。
1.for
1)break
for i in range(10):
if i <= 3:
continue
if i == 7:
break
print(i)
else:
print('run else')
2)no break
for i in range(10):
if i <= 3:
continue
# if i == 7:
# break
print(i)
else:
print('run else')
2.while
1)break
i = 0
while i <= 5:
print(i)
i += 1
if i == 3:
break
else:
print('run else')
2)no break
i = 0
while i <= 5:
print(i)
i += 1
# if i == 3:
# break
else:
print('run else')
3.补充:和try…except…一起使用
引发异常不走else,未引发异常时走else。
try:
1 / 1
except Exception as e:
print(e)
else:
print('else run ...')
try:
1 / 0
except Exception as e:
print(e)
else:
print('else run ...')