파이썬 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 문에서 세밀하게 사용할수 도 있습니다.
댓글 쓰기