Pythonは他の多くのプログラミング言語とは異なり、組み込みのSwitch文を持っていません。しかし、Pythonではif-elif-else文や辞書を使ってSwitch文のような機能を実現することができます。
if-elif-elseを使う方法
Switch文に代わる方法として、if-elif-else文があります。その基本構文と具体例を以下に示します。
x = 1
if x == 1:
print("x is 1")
elif x == 2:
print("x is 2")
else:
print("x is neither 1 nor 2")
ただし、条件が多い場合、if-elif-else文が長くなり、可読性が低下することがあるため注意が必要です。
辞書を使う方法
if-elif-else文以外にも辞書を使う方法があります。辞書のキーを条件とし、値に関数を指定することでSwitch文のような条件分岐が実装できます。
def case_1():
return "This is case 1"
def case_2():
return "This is case 2"
switch_dict = {
1: case_1,
2: case_2
}
x = 1
print(switch_dict.get(x, lambda: "Invalid case")())
辞書を使用したSwitch文の代替は、特に大量の条件分岐が存在する場合に有効です。
Python 3.10以降で利用可能なmatch文
Python 3.10では、新たな制御文であるmatch文が導入されました。これは他言語のSwitch文に似た機能を提供するもので、単に値のマッチングだけではなく構造的なマッチングも行うことのできる記法です。
def http_error(status):
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Something's wrong with the Internet"
以上のように、PythonではSwitch文を直接サポートしていないものの、if-elif-else文、辞書、およびmatch文を使用してSwitch文のような機能を実現することができます。これらの方法を適切に使い分けることで、Pythonのコードをより効率的に書くことができます。