【Python】レッスン2-04:条件分岐(macth文)を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:条件分岐(macth文)

この記事の練習問題で使用する知識:
入力と出力の基本コメントの書き方変数の宣言と代入基本データ型と算術演算子文字列の操作、フォーマット文字列比較演算子と論理演算子条件分岐(if-else文)条件分岐(elif文)条件分岐(match文)繰り返し処理(for文)繰り返し処理(while文)繰り返しの制御、エラーメッセージ例外処理の基礎

<<前の問題 問題集Top 次の問題>>

Pythonの「条件分岐(macth文)」とは

この章ではPythonにおける「条件分岐(macth文)」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。



Pythonではif-elif-else文に加えて、Python 3.10以降で新たに導入されたmatch文による条件分岐が使用できます。

これにより複数の条件に基づいた処理をより簡単に記述できるようになりました。

この記事ではmatch文の基本的な使い方について解説します。

条件分岐(match文)とは?

match文は複数の値を比較して特定の条件に応じて異なる処理を実行する構文です。

match文は「パターンマッチング」とも呼ばれ、特定の値に対して対応するcase文を使用して条件分岐を行います。

match文の基本的な構文は以下の通りです。

match 変数:
    case 値1:
        処理1
    case 値2:
        処理2
    case _:
        デフォルト処理
  • matchの後に続く変数に対して、caseを使って条件を記述します。
  • 最後のcase _: は「デフォルトケース」で、どの条件にも当てはまらない場合に実行されます。

match文を使うことでif-elif-else文を使わなくても複数の値に対する処理を簡潔に表現できます。

条件分岐の使用例

次にmatch文を使った具体的な例を見てみましょう。

以下のプログラムはユーザーに数値を入力してもらい、その数値に応じてメッセージを表示します。

num = int(input("数値を入力してください: "))

match num:
    case 1:
        print("1が入力されました。")
    case 2:
        print("2が入力されました。")
    case _:
        print("その他の数値が入力されました。")

このプログラムの動作は以下の通りです。

  1. input関数を使ってユーザーから数値を入力し、その値を整数型に変換して変数numに代入します。
  2. match numで入力された数値に基づいて、各case文で条件をチェックします。
    • case 1: では、数値が1の場合に「1が入力されました。」と表示します。
    • case 2: では、数値が2の場合に「2が入力されました。」と表示します。
    • それ以外の数値が入力された場合は、case _: の「その他の数値が入力されました。」というメッセージが表示されます。

このように、match文を使うことで複数の値に対する処理をシンプルに記述できるのが特徴です。

まとめ

match文は複数の条件に基づく処理を簡潔に記述できる強力なツールです。

特に値に基づいた分岐が多くなる場合、if-elif-else文を使うよりも読みやすく、効率的にコードを記述できます。

Python 3.10以降で使用可能なこの新しい文法を活用することで、条件分岐の処理をさらに簡単に書くことができるでしょう。

Python練習問題2-4:条件分岐(match文)を使って動物の鳴き声を表示しよう

ユーザーが入力した動物の名前に応じて、その動物の鳴き声を表示するプログラムを作成してください。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • input関数を使って、ユーザーから動物の名前(「犬」「猫」「鳥」)を入力してもらうこと。
  • match文を使用し、入力された動物の名前に応じて異なる鳴き声を表示すること。
  • 「犬」が入力された場合は「ワンワン」と表示すること。
  • 「猫」が入力された場合は「ニャーニャー」と表示すること。
  • 「鳥」が入力された場合は「ピーピー」と表示すること。
  • その他の動物が入力された場合は「その動物は記録されていません。」と表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

動物の名前を入力してください(犬/猫/鳥): 犬
ワンワン
動物の名前を入力してください(犬/猫/鳥): ライオン
その動物は記録されていません。

この問題を解くヒント

非常にシンプルな問題のため、ヒントはありません。

難しいと感じる方は上記の解説を見返してみてください。




解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

# ユーザーが入力した動物の名前によって、それぞれの鳴き声を表示するプログラム
# 使用文法: 条件分岐(match文)

# ユーザーに動物の名前を入力してもらう
animal = input("動物の名前を入力してください(犬/猫/鳥): ")

# 条件分岐(match文)を使って入力された動物に応じた鳴き声を表示する
match animal:
    case "犬":
        print("ワンワン")
    case "猫":
        print("ニャーニャー")
    case "鳥":
        print("ピーピー")
    case _:
        print("その動物は記録されていません。")

正解コードの解説

非常にシンプルなコードのため解説はありません。

難しいと感じる方は上記の解説を見返してみてください。

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Python記事トップへ戻る
    トップページへ戻る