Python/기본

[Python] match

댕주 2024. 11. 8. 20:37

Python 에는 Java 의 swtich 문처럼 바로 사용할 수 있는 구조는 없지만, Python 3.10부터는 match 문을 사용할 수 있다.

match 문은 switch 문과 비슷한 역할을 하며, 조건에 따라 코드 실행을 제어할 수 있게 도와준다.

간단한 경우엔 If-elif-else 문으로도 비슷한 로직을 구현할 수 있다.

def example(value):
    match value:
        case 1:
            print("One")
        case 2:
            print("Two")
        case _:
            print("Other")

 

case _: 는 match 문에서 기본값 역할을 하는 구문이다.

Java 의 default 와 비슷한 기능을 한다.

어떤 값이 들어와도 해당하는 다른 case 가 없을 때 case _: 에 해당하는 코드가 실행된다.

 

Python의 match 문에서 case 마다 break 를 사용할 필요가 없다.

match 문은 첫 번째로 일치하는 case 를 찾으면 바로 해당 블록을 실행하고 끝낸다.

 

추가 예시

def check_value(value):
    match value:
        case 1:
            print("1")
        case x if x > 2: # 여기서 x는 value와 동일한 값으로 할당된다
            print(f"2보다 크다: {x}")
        case _:
            print("그 외")

여기서 x 는 조건에 따라 value 값을 가져오는 임시 변수로 사용된 것이다.

match 문에서는 이렇게 변수 바인딩과 조건을 조합해서 더욱 유연하게 사용할 수 있다.