Recent Posts
Tags
- kakao Adfit
- 리엑트 삼항연산자
- javascript date format
- 파이썬 온라인 강의
- 파이썬 강의 사이트
- 동기 코드
- python 다운로드
- 국비 지원 파이썬
- 파이썬 입문
- javascript 날짜 포맷 변환
- javascript array shift
- 웹 프로그래밍 기초
- javascript array splice
- python slicing
- jquery loaded event
- html css
- javascript array add
- 프로그래밍
- 비동기 뜻
- python dictionary
- 웹 프로그래밍
- javascript array remove
- 동기 뜻
- jQuery
- 제이 쿼리
- 자바스크립트
- javascript array push
- HTML 기초
- 파이썬 배우기
- 파이썬 ide 추천
- 파이썬 세트
- jupyter python
- 파이썬 기초
- 카카오 애드핏
- $(document).ready()
- Python3
- javascript array map
- 파이썬 학원
- javascript example
- javascript array method
- 코딩 파이썬 기초
- 국비 지원 프로그래밍
- 파이썬 강의
- JavaScript
- javascript array unshift
- 비동기 코드
- 프로그래밍 파이썬
- 파이썬 사칙연산
- HTML
- python index
코딩이 즐겁다
[파이썬 기초] switch문을 대체하는 match문 사용법 갓벽 가이드 본문
반응형
- switch-case를 대체하는 Python 3.10+의 새로운 문법
- match 문을 사용해 다양한 패턴 매칭 (숫자, 문자열, 튜플, 리스트, 객체 등) 가능
- if 조건 추가 가능 → 더 강력한 조건 분기 처리 가능
- Python 3.10 이상에서만 사용 가능
파이썬 match-case문
Python 3.10부터 switch-case 문을 대체하는 match-case문이 도입되었습니다. 이 문법은 패턴 매칭을 기반으로 하며, switch-case보다 더 강력하고 유연한 방식으로 여러 가지 조건을 처리할 수 있습니다.
기본 문법
match 변수:
case 값1:
실행 코드
case 값2:
실행 코드
case _:
실행 코드 # 기본값 (default 역할)
- match 뒤에 비교할 변수를 넣습니다.
- 각 case 문에서 특정 값과 매칭됩니다.
- case _: 는 기본값 역할 (switch-case의 default와 동일).
기본 예제
✅ 예제 코드:
def get_day_name(day):
match day:
case 1:
return "월요일"
case 2:
return "화요일"
case 3:
return "수요일"
case 4:
return "목요일"
case 5:
return "금요일"
case 6:
return "토요일"
case 7:
return "일요일"
case _:
return "잘못된 입력"
print(get_day_name(3)) # 출력: 수요일
print(get_day_name(9)) # 출력: 잘못된 입력
switch-case 문과 매우 유사하지만, match-case 문법이 더 간결하고 Pythonic함
여러 값 매칭 ( | 연산자 사용 )
✅ 예제 코드:
def check_vowel(letter):
match letter:
case 'a' | 'e' | 'i' | 'o' | 'u':
return "모음입니다."
case _:
return "자음입니다."
print(check_vowel('a')) # 출력: 모음입니다.
print(check_vowel('b')) # 출력: 자음입니다.
| 연산자를 사용하여 여러 값을 한 번에 매칭할 수 있음.
튜플 매칭 (구조 분해)
✅ 예제 코드:
def process_point(point):
match point:
case (0, 0):
return "원점입니다."
case (x, 0):
return f"x축 위의 점 ({x}, 0)"
case (0, y):
return f"y축 위의 점 (0, {y})"
case (x, y):
return f"일반적인 점 ({x}, {y})"
case _:
return "잘못된 입력"
print(process_point((0, 0))) # 출력: 원점입니다.
print(process_point((5, 0))) # 출력: x축 위의 점 (5, 0)
print(process_point((0, 7))) # 출력: y축 위의 점 (0, 7)
print(process_point((3, 4))) # 출력: 일반적인 점 (3, 4)
튜플을 패턴 매칭하여 x, y 값을 추출할 수 있음.
리스트 매칭
✅ 예제 코드:
def check_list(lst):
match lst:
case [1, 2, 3]:
return "리스트가 [1, 2, 3]과 일치합니다."
case [1, *rest]: # 첫 번째 값이 1이고 나머지는 상관없음
return f"리스트는 1로 시작하며, 나머지는 {rest} 입니다."
case _:
return "일치하는 패턴이 없습니다."
print(check_list([1, 2, 3])) # 출력: 리스트가 [1, 2, 3]과 일치합니다.
print(check_list([1, 5, 6])) # 출력: 리스트는 1로 시작하며, 나머지는 [5, 6] 입니다.
print(check_list([2, 3, 4])) # 출력: 일치하는 패턴이 없습니다.
리스트 패턴 매칭 및 구조 분해(*rest 사용) 가능.
클래스 객체 매칭
✅ 예제 코드:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def check_person(person):
match person:
case Person(name="Alice", age=30):
return "Alice는 30살입니다."
case Person(name=name, age=age):
return f"{name}님의 나이는 {age}살입니다."
case _:
return "알 수 없는 사람입니다."
p1 = Person("Alice", 30)
p2 = Person("Bob", 25)
print(check_person(p1)) # 출력: Alice는 30살입니다.
print(check_person(p2)) # 출력: Bob님의 나이는 25살입니다.
클래스 객체의 속성을 패턴 매칭하여 특정 값을 추출할 수 있음.
if 조건 추가
✅ 예제 코드:
def check_number(n):
match n:
case n if n > 0:
return "양수입니다."
case n if n < 0:
return "음수입니다."
case 0:
return "0입니다."
case _:
return "잘못된 입력"
print(check_number(10)) # 출력: 양수입니다.
print(check_number(-5)) # 출력: 음수입니다.
print(check_number(0)) # 출력: 0입니다.
패턴 매칭과 if 문을 함께 사용하여 세밀한 조건 설정 가능.
match-case문 vs if-elif-else문 비교
방법 | 장점 | 단점 |
if-elif-else | 익숙하고 직관적 | 가독성이 떨어질 수 있음 |
match-case | 가독성이 좋고 패턴 매칭 가능 | Python 3.10 이상에서만 사용 가능 |
if-elif-else문 사용하여 switch문 구현
✅ 예제 코드:
def get_day_name(day):
if day == 1:
return "월요일"
elif day == 2:
return "화요일"
elif day == 3:
return "수요일"
elif day == 4:
return "목요일"
elif day == 5:
return "금요일"
elif day == 6:
return "토요일"
elif day == 7:
return "일요일"
else:
return "잘못된 입력"
print(get_day_name(3)) # 출력: 수요일
if-elif-else 문은 직관적이지만, 조건이 많아질수록 가독성이 떨어질 수 있습니다.
주의 사항
- Python 3.10 이상에서만 사용 가능 → match-case 문을 사용하려면 Python 3.10 이상이 필요함.
- case 문에서 변수를 선언할 경우, _ (언더스코어)를 사용하여 기본값을 처리하는 것이 좋음.
- | 연산자를 사용하면 여러 값을 동시에 매칭할 수 있음.
코즐
파이썬을 배우고 싶은 사람은 누구나 파이썬 학원(국비 지원 파이썬 학원)에 가지 않고도 파이썬 공부를 하면서 실력을 쌓아나갈 수 있다고 생각합니다.
파이썬 온라인 강의 자료를 올리면서 누구나 쉽게 파이썬을 공부하실 수 있도록 최선을 다해서 설명하도록 하겠습니다.
반응형
'Python' 카테고리의 다른 글
[파이썬 입문] enumerate() 함수 사용법 갓벽 가이드 (32) | 2025.03.03 |
---|---|
[파이썬 입문] count() 메서드 사용법 갓벽 가이드 (91) | 2025.02.26 |
[파이썬 입문] reduce 함수 사용법 갓벽 가이드 (63) | 2025.02.21 |
[파이썬 입문] try except 구문 갓벽 가이드 (116) | 2025.02.19 |
[파이썬 입문] 문자열 뒤집기, 문자열 거꾸로 출력 7가지 방법 갓벽 가이드 (127) | 2025.02.18 |