파이썬 match-case 문법 완벽 정리!

파이썬 match-case문에 대해 정리하겠습니다.

c언어를 해본 사람이라면 switch-case문이랑 같은 거라고 생각하면 됩니다

match 문은 2021년 3.10버전에서 나온 나름 최신 문법입니다



1. 기본 문법

match <대상값>:
    case <패턴1>:
        # 패턴1에 맞으면 실행
    case <패턴2>:
        # 패턴2에 맞으면 실행
    case _:
        # 위의 어떤 패턴에도 맞지 않을 때 실행

match는 주어진 값이 여러 패턴 중 어떤 것과 일치하는지 검사하게됩니다.
패턴에는 리터럴 값,변수 바인딩, 조건식 등을 쓸 수 있습니다.

요소 설명
<대상값> 비교할 값(해당 값이랑 동일하면 실행)
case 각각의 조건 패턴
_ c언어에서 switch-case의 default 

 2.간단한 예제


command = "start"

match command:
    case "start":
        print("프로그램 시작!")
    case "stop":
        print("프로그램 종료!")
    case _:
        print("알 수 없는 명령어입니다.")

command 변수에 start 값이랑 동일한 case을 찾아 프로그램 시작이 출력하게 됩니다.
c언어 switch-case 문과 달리 match 문에서는 break가 없어도 첫 번째 case 문만 실행되고 끝납니다.만약 변수명이 start,stop도 아니라면 3번째 case문 대상 값이 _인 게 실행하게 됩니다

(파이썬에서는 for과 같은 반복문에서만 사용합니다👍)

3.변수 패턴

match-case문에서 값을 확인하면서 값을 변수에 저장할 수 있습니다. 이렇게 하면 이후 코드에서 해당 값을 재사용할 수 있어 편리합니다.


response = ("success", 200)

match response:
    case ("success", code):
        print(f"성공 코드: {code}")
    case ("error", code):
        print(f"에러 코드: {code}")
    case _:
        print("알 수 없는 응답입니다")
        
     
     #출력 : 성공 코드 :200

("success",code)에서 튜플의 첫 번째 인자가 case의 대상 값과 비교하게 되고 조건에 맞는게 해당하면 각 case 문에 code는 200을 받아 print에 출력하게 됩니다. 패턴과 동시에 값을 추출할 수 있어 편리합니다.

4.if문 사용


x = 10

match x:
    case x if x < 5:
        print("5보다 작은 수")
    case x if x < 15:
        print("15보다 작은 수")
    case _:
        print("그 외")

	#출력 : 15보다 작은 수

조건문을 사용하여 각 case 문에서 세밀하게 사용할수 도 있습니다.

처음다음

댓글 쓰기