Pythonは他の多くのプログラミング言語とは異なり、switchやcase文を持っていません。しかし、それを回避するために、我々は辞書マッピングを使用します。
辞書マッピングを使用したSwitch Caseの実装
Pythonの辞書は、データ値を格納するために使用できる無順序のデータ値のコレクションです。他のデータ型とは異なり、要素ごとに単一の値しか含めることができないのに対し、辞書はキー:値のペアも含めることができます。辞書のキー値は、Switch case文を置き換えるために辞書を使用するときに、switch文のケースとして機能します。
def numbers_to_strings(argument):
switcher = {
0: "zero",
1: "one",
2: "two",
}
return switcher.get(argument, "nothing")
if __name__ == "__main__":
argument=0
print(numbers_to_strings(argument))
出力は zero
です。
if-elseを使用したSwitch Caseの実装
if-elseは、特定の文または文のブロックが実行されるかどうかを決定するために使用される別の方法です。特定の条件が真であるかどうかに基づいて、文のブロックが実行されるかどうかを決定します。
bike = 'Yamaha'
if bike == 'Hero':
print("bike is Hero")
elif bike == "Suzuki":
print("bike is Suzuki")
elif bike == "Yamaha":
print("bike is Yamaha")
else:
print("Please choose correct answer")
出力は bike is Yamaha
です。
クラスを使用したSwitch Caseの実装
この方法では、Pythonのswitchクラス内にswitchメソッドを作成するためにクラスを使用しています。
class Python_Switch:
def day(self, month):
default = "Incorrect day"
return getattr(self, 'case_' + str(month), lambda: default)()
def case_1(self):
return "Jan"
def case_2(self):
return "Feb"
def case_3(self):
return "Mar"
my_switch = Python_Switch()
print(my_switch.day(1))
print(my_switch.day(3))
出力は Jan
と Mar
です。
Python 3.10以降のSwitch Case
Python 3.10以降では、Pythonはswitchの代わりにmatchを使用してこれをサポートします。
def number_to_string(argument):
match argument:
case 0:
return "zero"
case 1:
return "one"
case 2:
return "two"
case default:
return "something"
head = number_to_string(2)
print(head)
出力は two
です。これはC++、Javaなどのswitchケースに似ています。.