目次  
1. 시작
Python은 그 단순함과 직관적인 구문 덕분에 많은 프로그래머에게 사랑받고 있지만, 다른 언어에 있는「switch-case」구문이 존재하지 않는 것에 놀라는 사람도 있을 것입니다. 따라서 Python에서는「if-elif-else」와「딕셔너리(dictionary)」를 이용해 동일한 처리를 구현해야 합니다. 이 기사에서는 Python에 대한 기존 조건 분기 방법, 딕셔너리를 활용한 대체 수단, 그리고 Python 3.10에 도입된 새로운「match-case」문에 대해 차례대로 설명합니다. 이를 통해 Python에서 효율적인 조건 분기 방법을 마스터하고 실제 코딩에 활용할 수 있을 것입니다.2. Python에 switch 문이 없는 이유
Python에서는 switch-case 문이 채택되지 않은 이유는 그 단순함과 가독성에 있습니다. Python 설계자는 언어를 가능한 한 간결하게 하고, 중복 및 불필요한 구문을 제거하는 것을 목표로 해왔습니다. switch 문은 다른 언어에서는 유용하지만, Python에서는「if-elif-else」 문이나 사전형을 사용하여 동일한 기능을 구현할 수 있기 때문에, switch 문을 추가할 필요가 없다고 합니다. 실제로, Python 공식 문서에도 if-elif-else 문을 사용함으로써 switch 문의 기능을 커버할 수 있다고 합니다. 아래 코드는 C 언어 등의 switch 문 예시입니다.switch (value) {
  case 1:
    printf("Value is 1");
    break;
  case 2:
    printf("Value is 2");
    break;
  default:
    printf("Other value");
}value = 1
if value == 1:
    print("Value is 1")
elif value == 2:
    print("Value is 2")
else:
    print("Other value")
3. if-elif-else 사용 예
Python에서 조건 분기를 수행하는 가장 기본적인 방법은 「if-elif-else」 문입니다. 이는 여러 조건에 따라 다른 처리를 실행할 때 매우 효과적입니다. 아래는 그 전형적인 사용 예입니다.value = 100
if value < 50:
    print("작은 값입니다")
elif value < 100:
    print("중간 정도의 값입니다")
else:
    print("큰 값입니다")value 의 값에 따라 다른 메시지가 출력됩니다. if-elif-else 문은 간단하고 직관적인 조건 분기를 가능하게 합니다.조건이 늘어났을 때의 문제점
하지만 if-elif-else 문이 깊어지면 코드가 읽기 어려워질 수 있습니다. 특히 복잡한 조건을 다룰 때는 다음에 소개하는 「딕셔너리형」을 이용한 방법이 유효합니다.4. 딕셔너리형(dictionary)을 사용한 조건 분기
Python의 딕셔너리형을 사용하면, switch-case 문과 유사한 조건 분기를 구현할 수 있습니다. 딕셔너리형은 키와 값의 쌍을 저장하는 데이터 구조로, 여러 조건 분기를 간결하게 표현할 수 있습니다. 다음 예에서는 사용자가 입력한 숫자에 따라 해당 결과를 표시합니다.numbers = {1: "일", 2: "이", 3: "삼"}
value = int(input("1~3의 숫자를 입력해주세요: "))
if value in numbers:
    print(f"선택된 숫자: {numbers[value]}")
else:
    print("1~3의 숫자를 입력해주세요")딕셔너리형의 장점
딕셔너리형을 사용한 조건 분기는, 조건이 늘어나도 코드의 가독성이 높고 유지보수가 쉬운 점이 큰 장점입니다. 특히, 값에 대한 처리가 여러 개일 경우, if-elif-else 문보다 효율적입니다.5. Python 3.10의 새로운 기능: match-case 문 도입
Python 3.10부터 도입된 「match-case」 문은 switch-case 문과 매우 유사한 구문으로, 여러 조건을 간결하게 기술할 수 있습니다. 이 새로운 기능은 특히 패턴 매칭에 강점이 있으며, 기존의 if-elif-else 문이나 딕셔너리형을 사용한 방법에 비해 코드의 가독성과 유지보수성을 크게 향상시킵니다.match-case의 기본 구문
아래는 match-case 문에 대한 기본 사용 예시입니다.def check_value(value):
    match value:
        case 1:
            print("1이 선택되었습니다")
        case 2:
            print("2가 선택되었습니다")
        case _:
            print("1 또는 2가 아닌 것이 선택되었습니다")value의 값에 따라 다른 처리가 실행됩니다. case _는 기본 처리로, 어떤 조건에도 일치하지 않을 경우 실행됩니다.6. match-case의 응용 예시
match-case 문은 보다 복잡한 조건 분기와 패턴 매칭에도 적합합니다. 예를 들어, 리스트의 요소 수나 데이터 타입에 따라 처리를 수행할 수 있습니다.다중 조건에 대응하는 match-case 문
def process_data(data):
    match data:
        case [x, y]:
            print(f"리스트에 2개의 요소가 포함되어 있습니다: {x}, {y}")
        case [x, y, z]:
            print(f"리스트에 3개의 요소가 포함되어 있습니다: {x}, {y}, {z}")
        case _:
            print("리스트의 요소 수가 다릅니다")
7. if-elif-else, 사전형, match-case 비교
각각의 조건 분기 방식에는 고유한 장점과 단점이 있습니다. 아래에 그 비교표를 보여드립니다.| 방법 | 장점 | 단점 | 
|---|---|---|
| if-elif-else | 단순하고 직관적 | 조건이 많으면 코드가 복잡해진다 | 
| 사전형(dictionary) | 가독성이 높고, 조건이 많을 때 유용 | 모든 조건이 사전에 들어가는 것은 아니다 | 
| match-case | 다중 조건 분기와 패턴 매치에 유용 | Python 3.10 이후에서만 사용 가능 | 

 
 


![[python-pptx 완전 해설] PowerPoint 프레젠테이션 자료를 자동화하는 방법](https://www.python.digibeatrix.com/wp-content/uploads/2024/10/d17c9fffb58afcd866dab687583943f6-375x375.webp)
