Python match case 예제Python/Python 예제 코드2023. 10. 14. 07:58
Table of Contents
반응형
Python 3.10에서 추가된 C/C++의 switch case와 유사한 match case 예제입니다.
2022. 11. 4 최초작성
match문에 있는 변수 input의 값이 case 문에 있는 조건을 만족하면 해당 코드가 실행됩니다. case 문에 값이 지정되지 않은 경우는 _를 사용한 case 문에 있는 코드가 실행됩니다.
def f(input): match input: case 'apple': print('사과') case 'banana': print('바나나') case _: print('선택된 것이 없습니다.') f('apple') f('orange') |
사과 선택된 것이 없습니다. |
| 를 사용하여 두가지 이상의 조건을 하나의 case 문에 추가할 수 있습니다. 다음 예제에서는 input이 401 또는 403일 경우를 하나로 묶어주고 있습니다.
def f(input): match input: case 400: print("Bad request") case 401 | 403: print("Authentication error") case 404: print("Not found") case _: print("Other error") f(400) f(401) f(403) f(500) |
Bad request Authentication error Authentication error Other error |
case문에 두개 이상의 값이 주어지는 경우 예제입니다.
def alarm(item): match item: # 두개의 값이 주어진 경우입니다. case [time, action]: print(f'Good {time}! It is time to {action}!') # 두개 이상의 값이 주어진 경우 첫번째 값은 변수 time에 대입되고 나머지는 가변인자 actions에 대입됩니다. case [time, *actions]: print('Good morning! ', end='') # 가변인자의 값을 하나씩 가져와 출력해줍니다. for action in actions: print(f'It is time to {action}! ', end='') # 리스트에 값을 대입하여 alarm 함수를 호출합니다. alarm(['afternoon', 'work']) alarm(('morning', 'have breakfast', 'brush teeth', 'work')) |
Good afternoon! It is time to work! Good morning! It is time to have breakfast! It is time to brush teeth! It is time to work! |
주어진 값이 지정된 값중 하나인지 체크하는 예제입니다.
def alarm(item): match item: # 두개의 값이 주어진 경우로 첫번째 값이 morning, afternoon, evening 중 하나인지 체크합니다. print문의 time 변수 자리에 값이 출력됩니다. case [('morning' | 'afternoon' | 'evening') as time, action]: print(f'Good {time}! It is time to {action}!') case _: print('The time is invalid.') alarm(['afternoon', 'work']) alarm(['morning', 'work']) |
Good afternoon! It is time to work! Good morning! It is time to work! |
참고
https://towardsdatascience.com/the-match-case-in-python-3-10-is-not-that-simple-f65b350bb025
반응형
'Python > Python 예제 코드' 카테고리의 다른 글
딕셔너리 value별 개수 세는 파이썬 예제 (0) | 2023.10.14 |
---|---|
Python에서 Class내 global 선언 위치 (0) | 2023.10.14 |
OpenCV Python 강좌 – Affine Transformation (0) | 2023.10.12 |
Python immutable, mutable 객체와 함수 (0) | 2023.10.12 |
파이썬 딕셔너리를 파일에 저장했다가 로드하는 예제 - pickle, json (0) | 2023.10.11 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!