SeouliteLab

[Python/파이썬] Switch Case 구현 방법 (Match Case) 본문

프로그래밍

[Python/파이썬] Switch Case 구현 방법 (Match Case)

Seoulite Lab 2024. 3. 4. 08:19

파이썬은 기본적으로 Switch Case 문법을 지원하지 않습니다. 하지만 Python 3.10부터 match case 문법이 도입되어 Switch Case와 유사한 기능을 구현할 수 있게 되었습니다. 이번에는 이를 활용하여 Switch Case를 구현하는 방법에 대해 살펴보겠습니다.

1. 기본적인 Switch Case

가장 간단한 형태의 Switch Case 예제를 살펴봅시다. 이 예제에서는 주어진 숫자에 따라 계절을 출력합니다.

def get_season(month):
    match month:
        case 3 | 4 | 5:
            season = "봄"
        case 6 | 7 | 8:
            season = "여름"
        case 9 | 10 | 11:
            season = "가을"
        case 12 | 1 | 2:
            season = "겨울"
        case _:
            season = "잘못된 입력"
    return season

print(get_season(3))  # 출력 결과: 봄

2. 패턴 매칭을 사용한 Switch Case

매칭 패턴을 사용하여 Switch Case를 더 다양하게 구현할 수 있습니다. 다음 예제는 숫자에 따라 각각의 동물을 출력하는 Switch Case를 구현한 것입니다.

def get_animal(number):
    match number:
        case 1:
            animal = "개"
        case 2:
            animal = "고양이"
        case 3:
            animal = "새"
        case 4:
            animal = "물고기"
        case _:
            animal = "알 수 없음"
    return animal

print(get_animal(3))  # 출력 결과: 새

3. 값 범위에 따른 Switch Case

값의 범위에 따라 다른 동작을 수행하는 Switch Case를 구현할 수도 있습니다.

def get_grade(score):
    match score:
        case 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100:
            grade = "A+"
        case 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89:
            grade = "A"
        case 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79:
            grade = "B+"
        case 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69:
            grade = "B"
        case 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59:
            grade = "C+"
        case 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49:
            grade = "C"
        case _:
            grade = "F"
    return grade

print(get_grade(85))  # 출력 결과: A

4. 조건을 포함한 Switch Case

Switch Case에 조건을 포함하여 더 복잡한 패턴을 구현할 수도 있습니다.

def get_weekday(day):
    match day:
        case 1:
            weekday = "월요일"
        case 2:
            weekday = "화요일"
        case 3:
            weekday = "수요일"
        case 4:
            weekday = "목요일"
        case 5:
            weekday = "금요일"
        case 6:
            weekday = "토요일"
        case 7:
            weekday = "일요일" if day == 7 else "잘못된 입력"
        case _:
            weekday = "잘못된 입력"
    return weekday

print(get_weekday(7))  # 출력 결과: 일요일