안녕하세요~ 

이번 시간에는 조건문 match case의 개념에 대해 알아보려고 하는데요.

정확한 개념과 활용법에 대해 배워볼까요?

조건문 match case
# 리터럴, 와일드카드
menu = int(input('메뉴를 입력해주세요> '))
 
match menu:
    case 1:
        print('커피')
    case 2:
        print('에이드')
    case 3:
        print('우유')
    case _:
        print('1 ~ 3까지만 입력 가능!')

print('=====================')

# 시퀀스, OR, 캡쳐
examples = [
    ['apple'],
    ['홍길동', '이순신'],
    ['1'],
    ['a', 'b'],
    ['score', 95, 82, 77]
]
 
for x in examples:
    match x:
        case ['apple']:           
            print(x)
        case ['홍길동', '이순신']:   
            print(x)
        case ['1'] | ['2']:       
            print(x)
        case ['a', z]:          
            print(z)
        case ['score', *z]:        
            print(z)

 조건문 match case문을 여러가지 방법으로 사용하는 코드.

오늘의 핵심 키워드

1.  조건문 match ~ case는 값 자체를 조건으로 위에서부터 차례대로 체크하며 찾아가는 방식으로 작동한다.

    match 변수 or 값:

        case 값:

              실행문

※     들여쓰기 부분은 필수!  ==>  파이썬은 공백으로 영역으로 나누기 때문에

2. ' _ ' (언더바)는 와일드카드라고 부르고 앞에 조건들을 제외한 모든 것을 포함한다.

3. ' | ' (OR)은 또는 개념으로 둘 중에 하나라도 만족하면 참이다.

4. ' * ' (별)은 앞에 값을 제외하고 나머지 요소들을 모두 저장하는 변수 앞에 붙인다.



 ① 변수 menu에 input() 함수로 콘솔창에서 입력받는 숫자 저장

② match case문에서 menu에 저장되는 값에 따라 매칭되어 각각 실행문 실행



① 변수 examples에 여러가지 종류의 리스트가 담긴 리스트 저장

② for 반복문을 통해 리스트에 담긴 요소들을 x에 저장하여 사용

# ['apple'] 매칭 - (시퀀스 패턴)

# ['홍길동', '이순신'] 모두 매칭 - (시퀀스 패턴)

# ['1'] 또는 ['2'] 매칭 - (OR 패턴)

# 'a'가 매칭되었을 때 두 번째 값을 z에 캡쳐 - (캡쳐 패턴)

# 'score'가 매칭되었을 때 매칭되지 않은 나머지 요소들을 *z에 저장 - (시퀀스 패턴)


 꼭 봐야되는 마무리 꿀팁!

  • 단순 값으로 찾아가는 조건이 필요할 때는 match-case문 사용하기! 
  • 값을 여러개 체크할 때는 OR(' | ') 사용하기! 
  • 리스트 중에서 나머지 요소를 저장할 때는 ' * ' 사용하기!  


▲영상으로 한번 더 복습하세요 :)