파이문

파이썬에서 switch-case문 사용하기 본문

Python/Python

파이썬에서 switch-case문 사용하기

민Z 2016. 5. 25. 21:29

파이썬에서 switch-case문 사용하기

(Python Switch-Case)


파이썬에서는 switch, case라는 키워드가 존재하지 않습니다. 그래서 어떤 입력에 대해서 case를 나누고 싶다면 주로 if-elif-else를 사용하곤 하죠. 아니면 딕셔너리를 이용해서 마치 switch-case문 처럼 사용할 수 있습니다.

def f(x):
    return {'a': '1', 'b': '2'}[x]

입력 x가 'a'라면 '1'을 리턴하고, 'b'라면 '2'를 리턴합니다.

만약, 입력 값이 'a'도 'b'도 아닌 'c'라면 f('c')는 KeyError를 던지죠.


다른 언어의 switch-case문은 예외를 위해, 디폴트 값을 지정할 수 있는데요. 파이썬도 마찬가지로 디폴트로 값을 지정할 수 있습니다. 

def f(x):
    return {'a': '1', 'b': '2'}.get(x, '3')

(이처럼 작성하면 기본으로 없는 키에 대해선 '3'을 리턴합니다.)


파이썬에서는 딕셔너리의 값을 가져올 때 get을 쓸 수 있는데요. get을 쓰게 되면 없는 키에 대해선 KeyError가 아닌 지정한 값을 리턴할 수 있습니다. 아무 값도 지정하지 않는다면 None을 리턴하죠. (https://www.pymoon.com/entry/파이썬에서-딕셔너리-키-값-체크하기)


이와 같은 방법으로 파이썬에서 switch-case문(처럼) 을 사용할 수 있습니다.


Comments