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