Python 3.10から導入された新機能の一つに、match-case
文があります。この機能は他のプログラミング言語でいうところのswitch-case
文に似ていますが、より強力で柔軟な条件分岐を実現します。
基本的な構文
match-case
文の基本的な構文は以下のようになります。
match 対象の変数:
case パターン1:
処理1
case パターン2:
処理2
...
case パターンN:
処理N
case _:
それ以外の場合の処理
パターンマッチング
match-case
文の強力な機能の一つに、パターンマッチングがあります。これにより、リストや辞書などのデータ構造に対しても簡単に条件分岐を行うことができます。
例えば、次のようなリストがあるとします。
data = ["apple", 3]
このリストの要素に応じて処理を分岐させるには、以下のようにmatch-case
文を使います。
data = ["apple", 3]
match data:
case ["apple", int(num)]:
print(f"リンゴが{num}個")
case ["banana", int(num)]:
print(f"バナナが{num}個")
case _:
print("その他のデータ")
or
を使った複数条件のマッチング
match-case
文では、or
を使って複数の条件を一つのcase
文で表現することも可能です。これにより、同じ処理を行う複数の条件を一つのcase
文にまとめることができます。
status = 500
match status:
case 200:
raise Exception('失敗')
case 500 | 501 | 502 | 503:
print('成功')
case _:
raise Exception('失敗')
このように、Python 3.10からはmatch-case
文を使って、よりシンプルで直感的な条件分岐が可能になりました。ただし、現在でもPython 3.9以前のバージョンが使われているため、まだmatch-case
文が使えない状況もあります。そのため、状況に応じてif-elif-else
文を使った条件分岐も覚えておくことが重要です。