본문 바로가기

개념

파이썬(Python)의 match문에 대해서

Python의 match 문은 Python 3.10 버전부터 도입된 새로운 제어 흐름 구조입니다. match 문은 switch 문의 확장된 버전으로 생각할 수 있습니다. match 문은 표현식을 평가하고, 다양한 패턴을 사용하여 표현식의 결과와 일치하는 패턴을 찾습니다. 그리고 해당 패턴에 매칭되는 블록을 실행합니다.


1. match 문의 구조

match expression:
    pattern1:
        # code block to execute if pattern1 matches expression
    pattern2:
        # code block to execute if pattern2 matches expression
    ...
    patternN:
        # code block to execute if patternN matches expression


match 문에서 expression은 비교할 값입니다. pattern은 case 문의 구성요소입니다. pattern은 일치하는 값의 종류를 나타내며, match 문은 각 패턴을 위에서 아래로 검사하여 첫 번째로 일치하는 패턴을 찾습니다. 만약 일치하는 패턴이 없을 경우, MatchError가 발생합니다.


2. match 문의 예제

def calculate(operation, num1, num2):
    match operation:
        case '+':
            return num1 + num2
        case '-':
            return num1 - num2
        case '*':
            return num1 * num2
        case '/':
            return num1 / num2
        case _:
            raise ValueError("Invalid operation")

result = calculate('*', 5, 10)
print(result)


위 예제에서 calculate 함수는 연산자(operation), 첫 번째 숫자(num1)와 두 번째 숫자(num2)를 인자로 받습니다. match 문을 사용하여 operation이 +, -, *, / 중 어느 것인지 패턴을 검사합니다. case _:은 어떤 패턴에도 일치하지 않는 모든 값을 처리합니다.

위 예제를 실행하면, 출력은 50이 됩니다. calculate('*', 5, 10)에서 '*'이 operation 값이기 때문에, num1 * num2가 실행됩니다.

이상으로, match 문의 개념과 예제 코드를 설명해드렸습니다.