파이썬/기초 프로그래밍

return, break, continue, pass 그리고 finally의 관계 완벽 정리

Data Jun 2025. 6. 22. 15:17

파이썬에서는 예외 처리 외에도 return, break, continue, pass 같은 흐름 제어 키워드가 많이 사용됩니다.
이러한 키워드와 try–finally 구문이 어떻게 상호작용하는지 이해하면, 더 안정적이고 예측 가능한 코드를 작성할 수 있습니다.

 

1. return과 finally: 반환 전에 마무리 작업은 꼭 실행된다

def func():
    try:
        print("작업 수행")
        return "결과 반환"
    finally:
        print("반드시 실행되는 마무리")

print(func())

결과

작업 수행  
반드시 실행되는 마무리  
결과 반환

return이 있어도 finally는 반드시 실행됩니다.

예외, 리턴, 종료… 어떤 상황에서도 finally는 실행됩니다

 

2. break와 finally: 루프를 빠져나가도 finally는 실행된다

def test():
    while True:
        try:
            print("반복 중...")
            break
        finally:
            print("break 전에 반드시 실행됨")

test()

결과

반복 중...  
break 전에 반드시 실행됨

 

3. continue와 finally: 다음 반복 전에도 마무리된다

for i in range(3):
    try:
        print(f"{i} 처리 중")
        continue
    finally:
        print(f"{i}에 대한 마무리 작업")

결과

0 처리 중  
0에 대한 마무리 작업  
1 처리 중  
1에 대한 마무리 작업  
2 처리 중  
2에 대한 마무리 작업

continue를 만나도 finally는 먼저 실행되고 → 그다음 루프 반복

 

4. pass는 아무것도 하지 않지만 흐름을 막지는 않는다

try:
    print("작업 수행")
    pass
finally:
    print("pass가 있어도 finally는 실행")

pass는 단순히 **“아무 동작도 하지 않음”**을 의미하는 자리 표시자일 뿐입니다.
예외 흐름이나 finally와는 직접적인 영향이 없습니다.

 

 

 

정리하면

키워드 설명 finally 실행 여부
return  함수 실행을 종료하고 값을 반환함 실행됨
break 루프 종료 실행됨
continue 다음 루프로 넘어감 실행됨
pass 아무 동작 없음 실행됨

finally는 파이썬에서 "무슨 일이 있어도 반드시 실행되어야 할 작업"을 보장하는 블록입니다.

예외 발생, 루프 제어, 함수 반환 등 어떤 흐름에서도 빠뜨리지 않고 실행된다는 점에서 매우 중요합니다.