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 ステートメントを提供しません。ただし、Python の switch ステートメントの代わりに次のメソッドを使用できます。

辞書を使用して switch 文を実装する

Python の辞書データ型は、データのコレクションを key:value ペアとして格納するために使用されます。これは変更可能または変更可能なデータ型であり、重複する値は許可されません。

switch ステートメントと同様に、変数の値に基づいて実行するコードを決定します。辞書の key:value ペアを使用できます。ここで、key は変数の値であり、value は関数の名前です。key 値に基づいて、対応する関数を実行できます。

コードの実行を決定する値を持つ変数 x があるとすると、0:function11: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 ステートメントは、3つ以上のケースを処理する必要がある場合に使用され、if ... else ステートメントは、2つの可能性またはケースを処理するために使用されます。

また、switch 文の代わりに、x の値に対して 2つの可能なコードがある場合には、if...elif...else 文を使うことができます。また、x の複数の値に対して実行するコードや関数が 2つ以上ある場合には、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