Python의 switch 문

Muhammad Waiz Khan 2023년1월30일
  1. 사전을 사용하여 switch 문 구현
  2. if...elif...else또는if ... else문을 사용하여 Switch 문 구현
Python의 switch 문

이 튜토리얼은 Python에서switch문 기능을 구현하는 다양한 방법을 보여줍니다. 많은 프로그래밍 언어에서switch문은 프로그램 흐름을 제어하는 데 사용됩니다. 즉, 변수 또는 표현식의 값을 기반으로 실행되는 코드 블록입니다.

C, C++, C# 및 JAVA와 같은 프로그래밍 언어와 달리 Python 언어는 switch 문을 제공하지 않습니다. 하지만 파이썬에서 switch 문 대신 다음 메서드를 사용할 수 있습니다.

사전을 사용하여 switch 문 구현

Python의 사전 데이터 유형은 데이터 컬렉션을key:value쌍으로 저장하는 데 사용됩니다. 변경 가능하거나 변경 가능한 데이터 유형이며 중복 값을 허용하지 않습니다.

switch 문에서와 같이 변수의 값에 따라 실행할 코드를 결정합니다. 사전의key:value쌍을 사용할 수 있습니다. 여기서key는 변수의 값이고value는 함수의 이름입니다. key값을 기반으로 해당 기능을 실행할 수 있습니다.

값이 코드 실행을 결정하는 변수x가 있다고 가정하면0:function1,1:function2등과 같은 사전에key:value쌍을 저장할 수 있습니다. 여기서01은 사전의 값입니다. 코드가 오류로 실행되는 것을 방지하기 위해dict.get(key, default)메소드를 사용하고x의 알 수없는 값이 제공되는 경우 함수 이름에default값을 전달할 수 있습니다.

아래 예제 코드는 Python에서switch문 기능을 구현하기 위해 사전 데이터 유형을 사용하는 방법을 보여줍니다.

def function1():
    print("function 1 was executed")


def function2():
    print("function 2 was executed")


def function3():
    print("function 3 was executed")


switch = {1: function1, 2: function2, 3: function3}

x = 1
switch.get(x, function1)()
x = 2
switch.get(x, function1)()

출력:

function 1 was executed
function 2 was executed

변수x의 값을 기반으로 다른 변수a의 값에 대해 몇 가지 작업을 수행하려는 경우 아래 예제 코드와 같이 수행 할 수 있습니다.

switch = {1: lambda a: a + 1, 2: lambda a: a + 2, 3: lambda a: a + 3}

x = 2
a = 10
print(switch[x](a))
x = 1
a = 4
print(switch[x](a))

출력:

12
5

if...elif...else또는if ... else문을 사용하여 Switch 문 구현

if...elif...else문은 두 개 이상의 케이스를 처리해야하는 경우 사용되며if ... else문은 두 가지 가능성 또는 케이스를 처리하는 데 사용됩니다.

switch 문 대신x 값에 대해 가능한 코드가 두 개 있으면if ... else를 사용할 수 있습니다. 그리고x의 여러 값에 대해 실행할 코드 나 함수가 두 개 이상이면if...elif...else 문을 사용할 수 있습니다.

아래 예제 코드는 Python에서if ... else문을 사용하여switch문 기능을 구현하는 방법을 보여줍니다.

def function1():
    print("function 1 was executed")


def function2():
    print("function 2 was executed")


x = 3

if x == 1:
    function1()
else:
    function2()

출력:

function 2 was executed

아래 예제 코드와 같이if...elif...else문을 사용하여switch문을 구현하여 여러 사례를 처리 할 수 ​​있습니다.

def function1():
    print("function 1 was executed")


def function2():
    print("function 2 was executed")


def function3():
    print("function 3 was executed")


x = 2
if x == 1:
    function1()
elif x == 2:
    function2()
elif x == 3:
    function3()

출력:

function 2 was executed

관련 문장 - Python Keyword