Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python) 루프의 else 절, 어떻게 이해해야 할까?

파이썬의 독특한 기능 중 하나는 루프(for, while)와 함께 else 절을 사용할 수 있다는 점입니다. C/C++나 Java 같은 주요 프로그래밍 언어에서는 찾아볼 수 없는 파이썬만의 특징으로, 처음 접하는 개발자들에게는 다소 생소하게 느껴질 수 있습니다.

루프에서 else 절은 언제 실행될까?

일반적으로 루프의 본문(body)은 반복 조건에 의해 제어되며, 조건이 만족되는 동안 계속 실행됩니다. 모든 반복이 끝나면 프로그램은 루프를 빠져나가 그다음 문장들을 실행하죠.

그런데 파이썬에서는 루프 뒤에 붙인 else 블록이 모든 반복(iteration)이 정상적으로 끝난 직후, 즉 프로그램이 루프를 완전히 빠져나가기 전에 실행됩니다. 아래 예제를 통해 확인해 보겠습니다.

예제 코드

for x in range(5):
    print('inside body of loop', x)
else:
    print('else block of loop')

print('outside loop')

실행 결과

inside body of loop 0
inside body of loop 1
inside body of loop 2
inside body of loop 3
inside body of loop 4
else block of loop
outside loop

결과 분석

실행 결과를 보면 루프 본문이 0부터 4까지 총 5번 실행된 후, 'outside loop' 문장이 출력되기 전에 else 블록이 먼저 실행된 것을 확인할 수 있습니다. 즉, else 절은 루프가 중간에 강제로 종료되지 않고 모든 반복을 마친 경우에 한 번 실행됩니다.

break 문과 함께 쓰면 어떻게 될까?

주의할 점은 루프 안에서 break 문이 실행되어 루프가 강제 종료되면 else 블록은 건너뛴다는 것입니다. 이러한 특성 때문에 else 절은 '루프가 break 없이 끝까지 완료되었는지'를 검사하는 용도로 자주 활용됩니다.

for x in range(5):
    if x == 3:
        break
    print(x)
else:
    print('else block')  # break 때문에 실행되지 않음

이처럼 파이썬의 루프 else 절은 검색 실패 여부 확인, 조건 만족 검사 등에서 코드를 더 간결하게 만들어 주는 유용한 기능입니다.