【Python】レッスン2-4:match文による分岐処理を理解しよう

ながみえ
【Python学習記事のアイキャッチ画像】Lesson2-4 条件分岐(match文)を理解しよう

一つ前のLessonでは条件分岐(if-elif-else文)について学習しました。

今回は条件分岐(match文)について見ていきます。

Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:条件分岐(if-else文)を理解しよう
・Lesson2-3:条件分岐(if-elif-else文)を理解しよう
・Lesson2-4:条件分岐(match文)を理解しよう ◁今回はココ
・Lesson2-5:繰り返し処理(for文)を理解しよう
・Lesson2-6:繰り返し処理(while文)を理解しよう
・Lesson2-7:繰り返しの制御を理解しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理の基礎を理解しよう
・練習問題2-1:ハイアンドロー ゲームを作ろう
・練習問題2-2:数字当てゲームを作ろう
・練習問題2-3:簡単なじゃんけんゲームを作ろう
Lesson3:関数とスコープ編
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ:Python基礎習得者にお勧めの道5選(実務or副業)

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-3 条件分岐(if-elef文)を理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson2-5 繰り返処理(while文)を理解しよう

match文を使って、分かりやすい条件分岐を書こう

Python 3.10 から新しく導入された match文 は、複数の条件に応じた分岐処理をシンプルに書ける構文です。

これまで条件分岐といえば if 文や elif 文を組み合わせるのが一般的でしたが、match文を使うことでコードの見通しが良くなり、複雑な条件を整理して表現できるようになりました。

この知識を身につけることで、入力の種類に応じた処理をすっきり書いたり、複数の分岐パターンを直感的に表現したりすることが可能になります。

特に、条件が多いプログラムを書くときに役立つため、実践的なコードを書く上で大きな武器となります。

本記事では、初心者向けに match文の基本構文とcaseの使い方 を丁寧に解説し、if文との違いも分かりやすく紹介します。

ぜひ最後まで読み進めて、新しい条件分岐の書き方をマスターしましょう!

【Python】勉強猫がノートパソコンを前にして学習を始める様子。記事内の学習スタート用イラスト

match文の基本構文|条件分岐の考え方を学ぼう

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

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

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

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

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

match文の使い方を例で解説|条件分岐のコードを見てみよう

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

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

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

match num:  # 変数numが...
    case 1: # 1なら
        print("1が入力されました。")
    case 2: # 2なら
        print("2が入力されました。")
    case _: # それ以外なら
        print("その他の数値が入力されました。")

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

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

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

まとめ|match文で広がる分岐処理の選択肢

本記事ではPython 3.10から導入されたmatch文について、その基本構文と具体的な使い方を学びました。

ifelifを使った分岐と比べて、複雑な条件をよりシンプルに書ける方法があることを理解できたのではないでしょうか。

この知識が身についたことで、状況に応じたパターン分けを、より分かりやすく、ミスの少ない形で実装できるようになります。

プログラミングの世界には、便利で効率的な書き方がたくさん存在します。これからも新しい構文や考え方を一つずつ学んでいくことで、あなたのコードはさらに洗練されていきます。

次のレッスンも、ぜひ楽しみにしていてください。

Q
サイト改善アンケート|ご意見をお聞かせください(1分で終わります)

本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などをアンケート形式でお伺いしています。

1分だけ、ご協力いただけますと幸いです。

【Python】サイト改善アンケート
1.このサイトをどのように活用していますか?また、今後どのように活用したいですか?
5.気になっているサービス・商品があれば教えてください。
(複数選択可)
※ 特定の記事に関する内容の場合は、記事番号(Python Lesson〇-〇)をご記入願います。

練習問題:matchを使ってみよう

この記事で学習した「match文」を復習する練習問題に挑戦しましょう。

【Python】勉強猫がノートパソコンに向かい、練習問題に挑戦する様子。記事内の休憩用イラスト

問題|動物ごとの鳴き声を表示しよう

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

分岐には match/case 構文を用います。

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

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

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

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

解答例|動物の鳴き声マッチプログラム

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

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

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

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいPython学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-3 条件分岐(if-elef文)を理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson2-5 繰り返処理(while文)を理解しよう

match文の疑問解消|FAQと用語のまとめ

初心者がつまずきやすいポイントをFAQとしてまとめ、またよく使う専門用語をわかりやすく整理しました。

理解を深めたいときや、ふと疑問に感じたときに役立ててください。

FAQ|match文による分岐処理に関するよくある質問

Q
Q1. match文はどのバージョンから使えるのですか?

match文はPython 3.10以降で導入された構文です。古いバージョンでは使用できないため、環境に注意が必要です。

Q
Q2. match文とif-elif文はどう違うのですか?

match文はパターンマッチングに特化しており、コードの可読性が高くなります。if-elif文よりも条件が明確な場合に特に有効です。

Q
Q3. match文では文字列以外の型も使えますか?

はい、数値やタプル、クラスの属性など多様なデータ型に対応しています。柔軟な条件分岐が可能で、複雑な構造の処理にも向いています。

Python用語集|match文による分岐処理に関する用語一覧

今回の記事で出てきた用語・関数などを一覧で紹介します。

このサイトに出てくる 全てのPython用語をまとめた用語集 も活用してください。

Python用語定義・使い方の概要解説記事へのリンク
match複数のパターンに応じて処理を分岐させる構文。Python 3.10以降で導入された構文パターンマッチング本記事
casematch 文の中で各パターンに対する条件と処理を定義する構文本記事
if-else条件が真の場合と偽の場合で異なる処理を実行するための基本的な条件分岐構文Lesson2-2
elifif に続いて別の条件を追加で評価するための構文。複数条件の分岐に対応Lesson2-3
記事URLをコピーしました