본문 바로가기
파이썬/파이썬 기초

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

by SMCon 2023. 8. 14.
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
반응형