【Python】match文

アイキャッチ画像

Python 3.10から導入されたmatch文は、複数のパターンにマッチする処理を実現するための新しい構文です。

match 文は他の言語のswitch文のように使用することができます。

今までelifが、switch文で置き換えることができるため、スッキリしたしたプログラムになります。

ただし、match 文はPython 3.10から導入されてた構文ですので、使用する場合は必ずPythonのバージョンの確認をしてください。

目次

match文

Pythonのバージョン確認

match文は、Python 3.10から導入されました。使用する場合は必ずPythonのバージョンを確認してください。
Pythonのバージョンの確認方法は下記の記事を参考にしてください。

match文

match文は、与えられた値が一致するパターンを探し、それに応じた処理を実行する構文です。if文のように、条件を書き連ねる必要がなく、より直感的に分岐処理を表現することができます。

match 変数:
    case 1:
        return 返り値 1
    case 2:
        return 返り値 2
    case _:
        return 例外処理

上記のように書いたとき、変数が 1 であれば返り値 1、2 であれば返り値 2, それ以外の値であれば例外処理の結果が返ってきます。

数値の判定のサンプル

実際の実装は下記のようにします。

x = 2

match x:
    case 1:
        print("xは1です。")
    case 2:
        print("xは2です。")
    case _:
        print("xは1〜2のいずれでもありません。")

このプログラムでは、変数xに2を代入し、match文を使って分岐処理を行っています。

最初のcase文で、xが1である場合の処理を実行し、次のcase文でxが2である場合の処理を実行します。

最後のcase文は、どのパターンにも当てはまらなかった場合の処理を指定します。

文字列の判定のサンプル

また、match文は型の文字列型の変数に対してパターンマッチングを行うことができます。

text = "Hello, World!"

match text:
    case str(s) if len(s) == 0:
        print("空の文字列です。")
    case str(s):
        print(f"文字列'{s}'が含まれています。")
    case _:
        print("文字列ではありません。")

このプログラムでは、変数textに文字列”Hello, World!”を代入し、match文を使ってパターンマッチングを行っています。

最初のcase文では、空の文字列にマッチする条件を指定し、次のcase文では、文字列にマッチする条件を指定します。

最後のcase文は、どの条件にも当てはまらなかった場合の処理を指定します。

まとめ

match文を使用することで、PHPのようなswitch文を実現することができます。

ただ、比較的新しい構文などで、if~elifを使用する場合が多いです。

Python 掲載一覧

漢文家族には、下記のPythonの記事があります。

気になるところからチェックしてみてください。

プログラム学習に限界を感じていませんか?

よかったらシェアしてね!
  • URLをコピーしました!
目次