PythonでSwitch Statementを書く (2025) - Switch Case例
Takashi Yamamoto
Infrastructure Engineer · Leapcell

はじめに
多くのプログラミング言語において、switch文は、変数または式の値に基づいて多数の選択肢から1つのコードブロックを実行できる制御構造です。Pythonには、C、Java、JavaScriptなどの言語のような組み込みのswitch
文はありませんが、この機能を模倣する効果的な方法があります。Python 3.10では、match
文の導入により、switch-caseの動作を実装するためのエレガントでネイティブなソリューションが提供されます。
このチュートリアルでは、switch文を模倣する従来の方法を探り、新しいmatch
文について詳しく説明します。
Key Takeaways
- Pythonにはネイティブの
switch
文はありませんが、いくつか代替アプローチがあります。 - Python 3.10で導入された
match
文は、複数のケースを処理するのに最もPythonらしい方法です。 - 単純なマッピングの場合、辞書は依然として効果的なソリューションです。
従来の方法
Python 3.10より前は、開発者はswitch文を模倣するために、辞書またはif-elif-else
チェーンをよく使用していました。以下に2つの一般的なアプローチを示します。
1. 辞書の使用
辞書は、キーにマッピングされた関数または値を格納でき、switch-caseの動作を効果的に模倣します。
# 例:辞書を使用した基本的なSwitch def case_one(): return "Case 1 Executed" def case_two(): return "Case 2 Executed" def default_case(): return "Default Case" switch = { 1: case_one, 2: case_two } # 入力値 case_value = 1 # 対応するケースを実行する result = switch.get(case_value, default_case)() print(result)
2. if-elif-else
チェーンの使用
if-elif-else
チェーンは簡単ですが、ケースが多いと扱いにくくなる可能性があります。
# 例:if-elif-elseを使用した基本的なSwitch case_value = 3 if case_value == 1: result = "Case 1 Executed" elif case_value == 2: result = "Case 2 Executed" else: result = "Default Case" print(result)
Match文 (Python 3.10以降)
Python 3.10で導入されたmatch
文は、switch-case機能を実装するための構造化された方法を提供します。パターンマッチングをサポートしているため、他の言語の従来のswitch文よりも強力です。
構文
match variable: case pattern_1: # コードブロック case pattern_2: # コードブロック case _: # デフォルトブロック
例1:基本的なMatch-Case
case_value = 2 match case_value: case 1: result = "Case 1 Executed" case 2: result = "Case 2 Executed" case _: result = "Default Case" print(result)
例2:高度なパターンマッチング
パターンマッチングにより、データ構造のマッチングなど、複雑なケースが可能になります。
# 例:タプルのマッチング data = ("action", 42) match data: case ("action", value) if value > 40: result = f"Action with value {value}" case ("action", value): result = f"Action with smaller value {value}" case _: result = "No match" print(result)
各方法の使用時期
- 辞書: ケースが単純で、値または関数に直接マッピングする場合に使用します。
- If-Elif-Else: ケースの数が少ない場合、または条件に複雑な式が含まれる場合に使用します。
- Match文: 複雑なマッチングシナリオの場合、または構造化データ(タプル、リスト、辞書など)を扱う場合に使用します。
FAQs
Python 3.10で導入されたmatch
文は、パターンマッチングのための制御構造であり、クリーンで汎用性の高いケース処理を可能にします。
辞書、if-elif-else
チェーン、またはPython 3.10以降の最新のmatch
文を使用して、switch
文を模倣できます。
いいえ、match
文はPython 3.10以降でのみ利用可能です。古いバージョンでは、辞書またはif-elif-else
チェーンを使用してください。
結論
Pythonの多用途性により、辞書やif-elif-else
チェーンから、新しく強力なmatch
文まで、switch-caseの動作を実装する方法が複数あります。Python 3.10以降では、match
文がこの機能を実装するための推奨される最もPythonらしい方法です。利用可能なオプションを理解することで、プロジェクトに最適なアプローチを選択できます。
追加リソース
Leapcellは、Pythonプロジェクトをクラウドにデプロイするための最高の選択肢です。
Leapcellは、Webホスティング、非同期タスク、Redisのための次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に応じてのみ支払い—リクエストも料金もかかりません。
比類なき費用対効果
- アイドル料金なしの従量課金。
- 例:25ドルで平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実行可能な洞察を得るためのリアルタイムメトリクスとロギング。
簡単なスケーラビリティと高性能
- 高い同時実行性を簡単に処理するための自動スケーリング。
- 運用オーバーヘッドゼロ—構築に集中するだけです。
詳細については、ドキュメントをご覧ください。
Xでフォローしてください:@LeapcellHQ