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 문의 개념과 예제 코드를 설명해드렸습니다.
'개념' 카테고리의 다른 글
파이썬(Python)의 기본 인자(default parameter) 설정 하는 방법 (0) | 2023.03.03 |
---|---|
파이썬(Python)의 함수 정의하는 방법 (0) | 2023.03.03 |
파이썬(Python)의 pass문에 대해서 (0) | 2023.03.02 |
파이썬(Python)의 for 문 (break, continue, else) 에 대해서 (0) | 2023.03.02 |
파이썬(Python)의 range() 함수에 대해서 (0) | 2023.03.02 |