홍카나의 공부방

[Python] 파이썬에는 switch 문이 없다. 본문

Programming Language/Python

[Python] 파이썬에는 switch 문이 없다.

홍문관카페나무 2023. 5. 20. 15:05

C나, C++와 같은 다른 언어에는 분기 처리를 할 수 있는 switch문이 존재한다.

switch (expression) {
    case value1:
        // 처리 로직
        break;
    case value2:
        // 처리 로직
        break;
    case value3:
        // 처리 로직
        break;
    default:
        // 기본 처리 로직
        break;
}

 

그런데 파이썬은 switch 문이 내장되어 있지 않다.

그래서 switch 문을 대신하여 if-elif-else를 사용하여 처리하곤 한다.

 

input = 2

if input == 0:
    # Do something
elif input == 1:
    # Do something
else:
    # Do something

 

 

그런데 만약, if-else문을 제외하고 switch처럼 분기 처리를 하라고 하면, 어떻게 하겠는가?

해답 중 하나는 Dictionary를 이용하는 것이다.

딕셔너리를 사용하여 키-밸류 쌍을 설정하고, 입력된 밧에 해당하는 키의 값을 가져와서 처리하면 된다.

 

def case1():
    print('this is case1')

def case2():
    print('this is case2')

def case3():
    print('this is case3')

input = 3
default = 1

cases = {
    1: case1,
    2: case2,
    3: case3
}

cases.get(input, default)() # 결과 = "this is case3" 출력

구현해보세요

 

위 문제를 딕셔너리를 활용해서 구현해보자.

 

def SKT():
    print("당신은 SKT 사용자입니다.")


def KT():
    print("당신은 KT 사용자입니다.")


def LGU():
    print("당신은 LGU 사용자입니다.")


def Unknown():
    print("통신사를 바로 알 수 없습니다.")


tc = input("휴대전화 번호 입력: ")
case = tc[:3]

cases = {"011": SKT, "016": KT, "019": LGU, "010": Unknown}

cases.get(case, Unknown)()

 

 

반응형