Python 3.10から導入された新機能、match
文について説明します。この記事では、match
文とif
文の違いについて詳しく解説します。
match文とは
match
文はPython 3.10から導入された新機能で、値に応じた処理の分岐に使用する構文です。match
文は、if
文とは異なり、条件分岐が厳密に定められ、条件が入れ子になってしまった場合でもスッキリとまとまることが特徴です。
if文との違い
if
文は、ブール値(真または偽)を評価する必要があります。一方、match
文では、構造的パターンマッチングを行うことができ、これはより非線形的な方法で実装できます。つまり、複数のケースを一つずつチェックするのではなく、辞書を索引してすぐに正しい結果を取得するという違いがあります。
例
以下に、match
文とif
文の使用例を示します。
# if文
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
# match文
for i in range(1,101):
match i:
case i if i % 3 == 0 and i % 5 == 0:
print('FizzBuzz')
case i if i % 5 == 0:
print('Buzz')
case i if i % 3 == 0:
print('Fizz')
case _:
print(i)
この例からもわかるように、match
文を使用すると、コードがより読みやすくなります。
まとめ
match
文は、if
文とは異なる特性を持つため、それぞれの文が適した場面で使用することが重要です。match
文は、特に条件分岐が複雑になりがちな場合や、データ構造に基づいた条件分岐を行いたい場合に有効です。