더북(TheBook)

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도 마찬가지로 ‘이 블록 앞의 블록을 시도하다가 예외가 발생하면 이 블록을 실행하라’는 뜻이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.