BETTER WAY 9 for나 while 루프 뒤에 else 블록을 사용하지 말라
파이썬 루프는 대부분의 다른 프로그래밍 언어가 제공하지 않는 기능을 제공한다. 파이썬에서는 루프가 반복 수행하는 내부 블록 바로 다음에 else 블록을 추가할 수 있다.
for i in range(3): print('Loop', i) else: print('Else block!') >>> Loop 0 Loop 1 Loop 2 Else block!
놀랍게도 else 블록은 루프가 끝나자마자 실행된다. 그렇다면 왜 이 블록의 시작이 ‘and’가 아니고 ‘else’일까? if/else 문에서 else는 ‘이 블록 앞의 블록이 실행되지 않으면 이 블록을 실행하라’는 뜻이다. try/except 문에서 except도 마찬가지로 ‘이 블록 앞의 블록을 시도하다가 예외가 발생하면 이 블록을 실행하라’는 뜻이다.