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の記事があります。
気になるところからチェックしてみてください。
【Pythonの基本】
第1回 Pythonとは?
第2回 基本文法
第3回 変数とデータ型
【文字列】
第4回 文字列
【文字列関数とメソッド】
第7回 文字列の長さを調べる:len関数
【辞書型】
第9回 辞書型
第10回 辞書型(要素の情報の取得・要素の検索・辞書型のコピー・リスト型から辞書型を作成)
【制御構文】
第12回 if文
第13回 match文 今ここ
第14回 for文
【日付と時刻】
第15回 日付と時刻
第16回 文字の日付を日付型に変換する
第17回 日付型の日付を文字型の日付に変換する
【その他】
第18回 バージョンの確認方法
プログラム学習に限界を感じていませんか?



