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:function1、1:function2 などのように、key:value ペアを辞書に保存できます。ここで、0 と 1 は辞書の値です。コードでエラーが発生するのを防ぐために、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