\

Pythonは、その設計哲学が明確で読みやすいコードを重視するため、多くの他のプログラミング言語で見られるswitch文をサポートしていません。しかし、多くの条件を持つプログラムではswitch文が便利であるため、Pythonでもswitch文の代替手段を模索する必要があります。

Pythonでswitch文のような機能を実現するには、if-elif-elseを使う方法と辞書を使う方法があります。

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文以外にも辞書を使う方法があります。少しトリッキーなやり方なので、詳しく見ていきましょう。

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文を実装する方法について解説しました。Pythonでは、switch文がサポートされていないため、if-elif-else文や辞書を使って条件分岐をおこないましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です