파이썬/파이썬 기초

[파이썬 Python] 조건에 따른 명령어 수행 (Match, Case)

SMCon 2023. 8. 14. 10:02
728x90
반응형

match 표현식은 파이썬 3.10 버전부터 도입된 기능으로, 다양한 패턴을 사용하여 데이터를 비교하고 처리하는 방법을 제공합니다.

 

1. 간단한 Match 사용: match 표현식은 입력된 값과 패턴을 비교하며, case 문을 통해 패턴에 맞는 조건을 처리할 수 있습니다.

def check_value(x):
    match x:
        case 0:
            print("값은 0입니다.")
        case 1:
            print("값은 1입니다.")
        case _:
            print("다른 값입니다.")

 

2. 리스트 패턴 매칭: 리스트 내의 패턴을 매칭하여 특정 패턴에 따라 다른 처리를 수행할 수 있습니다.

def check_list(lst):
    match lst:
        case [0, 1]:
            print("0과 1이 포함된 리스트입니다.")
        case [2, *rest]:
            print("2와 나머지 값이 포함된 리스트입니다.")
        case _:
            print("다른 리스트입니다.")

 

3. 클래스 패턴 매칭: 클래스의 속성을 기반으로 패턴을 매칭하여 다양한 조건에 따라 다른 동작을 정의할 수 있습니다.

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

def process_point(p):
    match p:
        case Point(0, 0):
            print("원점입니다.")
        case Point(0, _):
            print("x 축 위의 점입니다.")
        case Point(_, 0):
            print("y 축 위의 점입니다.")
        case Point(x, y) if x == y:
            print("대각선 위의 점입니다.")
        case _:
            print("일반적인 점입니다.")

 

4. 표현식과 함께 사용: match 표현식은 결과값을 반환하므로, 표현식 내에서 match를 사용하여 간결한 처리를 할 수 있습니다.

def check_value(x):
    result = match x:
        case 0:
            "값은 0입니다."
        case 1:
            "값은 1입니다."
        case _:
            "다른 값입니다."
    print(result)

 

match 표현식은 데이터를 패턴에 맞춰 처리하는 강력한 방법으로, 다양한 조건에 따라 코드를 간결하고 가독성 좋게 작성할 수 있습니다.

728x90
반응형