Python 3.10から、Pythonでもmatch
文とcase
文が導入されました。これにより、よりシンプルで直感的な条件分岐が可能になりました。
Pythonとcase文の関係
多くのプログラミング言語では、switch
文やcase
文といった機能が提供されており、これらを使って条件分岐を行うことができます。しかし、Pythonではこれらの機能が長らく存在していませんでした。
その代わり、Pythonではif
文やelif
文を使って条件分岐を行っていました。
match-case文の登場
Python 3.10から、Pythonでもmatch
文とcase
文が導入されました。これにより、よりシンプルで直感的な条件分岐が可能になりました。
以下に、先ほどの例をmatch
文とcase
文を使って書き直した例を示します。
value = 2
match value:
case 1:
print("値は1です")
case 2:
print("値は2です")
case 3:
print("値は3です")
case _:
print("値は1, 2, 3以外です")
このコードでは、match
文の後に条件となる変数を指定し、case
文でそれぞれの値に対応する処理を記述しています。case _:
はどの条件にも当てはまらない場合の処理を表しています。
このように、Python 3.10からはmatch
文とcase
文を使って、よりシンプルで直感的な条件分岐が可能になりました。ただし、現在でもPython 3.9以前のバージョンが使われているため、まだmatch
文とcase
文が使えない状況もあります。そのため、状況に応じてif
文やelif
文を使った条件分岐も覚えておくことが重要です。
match-case文の使い方
Python 3.10から導入されたmatch-case
文は、他のプログラミング言語でいうところのswitch-case
文に似た機能を提供します。match-case
文を使うことで、複数の条件に基づいて処理を分岐させることができます。
パターンマッチング
match-case
文の強力な機能の1つに、パターンマッチングがあります。これにより、リストや辞書などのデータ構造に対しても簡単に条件分岐を行うことができます。
例えば、次のようなリストがあるとします。
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("その他のデータ")
このように、match-case
文を使うことで、Pythonプログラムの条件分岐を簡潔かつ柔軟に記述することができます。ただし、match-case
文はPython 3.10以降でのみ利用可能なので、古いバージョンのPythonを使っている場合は注意が必要です。