
파이썬 Switch 문, 이제 이렇게 쓰세요! (2025년 최신 가이드) - Switch Case 완벽 예제
많은 프로그래밍 언어에서 switch
문은 변수나 표현식의 값에 따라 여러 코드 블록 중 하나를 선택해서 실행할 수 있게 해주는 아주 유용한 도구인데요.
C (씨언어), Java (자바), JavaScript (자바스크립트) 같은 언어에는 switch
문이 기본적으로 있지만, 아쉽게도 파이썬 (Python)에는 switch
문이 내장되어 있지 않습니다.
하지만 걱정 마세요!
파이썬 (Python)에서도 switch
문과 비슷한 기능을 구현할 수 있는 여러 가지 방법들이 있습니다.
특히 파이썬 (Python) 3.10 버전부터는 match
문이라는 아주 멋지고 파이썬 (Python)스러운 방법으로 switch-case
기능을 구현할 수 있게 되었답니다.
이번 튜토리얼에서는 switch
문을 흉내내는 전통적인 방법들부터 시작해서, 파이썬 (Python) 3.10 버전부터 새롭게 도입된 match
문까지 자세히 알아보겠습니다.
핵심 요약
- 파이썬 (Python)에는 기본
switch
문은 없지만, 여러 가지 대안을 사용할 수 있습니다. - 파이썬 (Python) 3.10 버전부터 제공되는
match
문이switch-case
기능을 구현하는 가장 파이썬 (Python)다운 방법입니다. - 간단한 매핑의 경우에는 딕셔너리 (dictionary)를 사용하는 것이 여전히 효과적인 방법입니다.
전통적인 방법들
파이썬 (Python) 3.10 버전 이전에는 개발자들이 switch
문을 흉내내기 위해서 주로 딕셔너리 (dictionary)나 if-elif-else
체인을 사용했는데요.
두 가지 일반적인 방법을 한번 살펴볼까요?
- 딕셔너리 (Dictionary) 사용
딕셔너리 (dictionary)는 키 (key)에 함수나 값을 매핑해서 저장할 수 있기 때문에, switch-case
동작을 효과적으로 흉내낼 수 있습니다.
# 예제: 딕셔너리 (Dictionary)를 사용한 기본적인 Switch 문
def case_one():
return "Case 1 실행됨"
def case_two():
return "Case 2 실행됨"
def default_case():
return "기본 Case"
switch = {
1: case_one,
2: case_two
}
# 입력 값
case_value = 1
# 해당하는 case 실행
result = switch.get(case_value, default_case)()
print(result)
- if-elif-else 체인 사용
if-elif-else
체인은 직관적이지만, case가 많아지면 코드가 복잡해지고 지저분해질 수 있습니다.
# 예제: if-elif-else 체인을 사용한 기본적인 Switch 문
case_value = 3
if case_value == 1:
result = "Case 1 실행됨"
elif case_value == 2:
result = "Case 2 실행됨"
else:
result = "기본 Case"
print(result)
Match 문 (파이썬 3.10+ 버전)
파이썬 (Python) 3.10 버전부터 새로 도입된 match
문은 switch-case
기능을 더 구조적으로 구현할 수 있게 해줍니다.
패턴 매칭을 지원하기 때문에 다른 언어의 전통적인 switch
문보다 훨씬 더 강력하답니다.
문법
match 변수:
case 패턴_1:
# 코드 블록
case 패턴_2:
# 코드 블록
case _:
# 기본 블록
예제 1: 기본적인 Match-Case 문
case_value = 2
match case_value:
case 1:
result = "Case 1 실행됨"
case 2:
result = "Case 2 실행됨"
case _:
result = "기본 Case"
print(result)
예제 2: 고급 패턴 매칭
패턴 매칭을 사용하면 데이터 구조 매칭과 같이 더 복잡한 case들을 처리할 수 있습니다.
# 예제: 튜플 (tuple) 매칭
data = ("action", 42)
match data:
case ("action", value) if value > 40:
result = f"값 {value}인 action"
case ("action", value):
result = f"더 작은 값 {value}인 action"
case _:
result = "매치 없음"
print(result)
각 방법은 언제 사용하면 좋을까요?
- 딕셔너리 (Dictionary): case가 단순하고 값 또는 함수에 직접 매핑될 때 유용합니다.
- If-Elif-Else: case 수가 적거나 조건이 복잡한 표현식을 포함할 때 사용하면 좋습니다.
- Match 문: 복잡한 매칭 시나리오나 튜플 (tuple), 리스트 (list), 딕셔너리 (dictionary) 같은 구조화된 데이터를 다룰 때 사용하세요.
FAQ (자주 묻는 질문)
파이썬 (Python)은 다양한 방법으로 switch-case
동작을 구현할 수 있도록 해주는데요.
딕셔너리 (dictionary), if-elif-else
체인부터 시작해서 새롭고 강력한 match
문까지, 여러분의 상황에 맞는 가장 적절한 방법을 선택해서 사용할 수 있습니다.
파이썬 (Python) 3.10 버전 이후부터는 match
문이 switch-case
기능을 구현하는 가장 좋고 파이썬 (Python)스러운 방법이라고 할 수 있는데요.
다양한 옵션들을 잘 이해하고 프로젝트에 가장 적합한 접근 방식을 선택해보세요!
'Python' 카테고리의 다른 글
파이썬 PDF (Portable Document Format) 처리, Fitz (PyMuPDF) 하나면 끝! (0) | 2025.03.22 |
---|---|
Python tile-tools 시작하기: Mapbox 타일 작업, 이제 어렵지 않아요! (1) | 2025.03.22 |
FastAPI 핵심 탐구: Starlette 깊이 파헤쳐보기 (0) | 2025.03.22 |
파이썬 비동기 프로그래밍, 코루틴의 모든 것 (0) | 2025.03.22 |
파이썬 Garbage Collection 완벽 분석: 개발자가 반드시 알아야 할 모든 것 (0) | 2025.03.19 |