Python 3.10では、新たな構文であるmatch-case
が導入されました。この新機能は、より柔軟な条件分岐を可能にし、コードの可読性を向上させます。
match-case文の基本
match-case
文は、値に応じた処理の分岐に使用します。具体的には、次のような形式で記述します:
match value:
case pattern1:
# do something
case pattern2:
# do something else
...
ここで、pattern1
、pattern2
などは、マッチさせたいパターンを表します。パターンはリテラル、変数、データ構造など、さまざまな形式を取ることができます。
if文との比較
if
文とmatch-case
文の最大の違いは、if
文がブール式を評価するのに対し、match-case
文は構造的パターンマッチングを行う点です。これにより、match-case
文は、複数のケースを一度にチェックしたり、辞書をインデックス化して直接結果を取得したりすることが可能になります。
実例
以下に、if
文とmatch-case
文を用いたFizzBuzz問題の解答例を示します。
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-case文を使用した場合
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-case
文を使用すると、コードがよりシンプルになり、可読性が向上します。
以上、Python 3.10の新機能であるmatch-case
文について簡単に紹介しました。この新機能を活用することで、PythonのコードがさらにPythonicになることでしょう。