ーーーーーーーーーーーーーーーーーーーーー2026年3月2日執筆ーーーーーーーーーーーーーーーーー
Pythonの条件式と分岐、これから始めようとする初心者向けに分かりやすく解説|Python入門(5)のPodcast
下記のPodcastは、Geminiで作成しました。
はじめに
プログラミングを学ぶ上で、最もワクワクする瞬間の一つが「コンピュータに判断を任せる」コードを書けた時です。私たちは日常の中で、「もし雨が降っていたら、傘を持っていく」「もしお腹が空いていたら、ご飯を食べる」といった判断を無数に行っています。Pythonでも、これと同じ仕組みを「条件分岐」という名前で使います 。
最新のPython 3.14では、初心者がミスをしてもコンピュータが「もしかしてこう言いたかった?」と優しく教えてくれる機能が強化されています 。この記事では、基本から最新の便利な機能まで、丁寧に解説していきます。


図1:条件分岐のイメージ
コンピュータの「Yes/No」:真偽値(bool型)
条件分岐の主役は、物事が正しいか(真:True)、正しくないか(偽:False)を判定することです。これを「真偽値(しんぎち)」と呼びます 。
Pythonが「偽(False)」と判定するもの
Pythonには面白い特徴があり、数値の「0」や、中身が空っぽのリストなども「偽(False)」として扱われます 。
| 種類 | 偽(False)とみなされる例 |
| 定数 | None, False |
| 数値 | 0, 0.0, 0j |
| 空の入れ物 | '' (空の文字), `` (空のリスト), {} (空の辞書) |
最新情報: Python 3.14からは、特殊な記号 NotImplemented を真偽判定に使おうとすると、これまでの警告ではなくエラー(TypeError)が出るようになりました 。これは、うっかりミスを防ぐための改善です。
もしも~なら: if 文の基本
もっともシンプルな分岐は、if(もしも)を使った形です。
Python
# お天気を判定するプログラム
is_raining = True
if is_raining:
print("傘を持っていきましょう!") # 条件が正しいときだけ実行
重要なルール:インデント(字下げ)
Pythonでは、if 文の後に実行したい処理は、必ず「半角スペース4つ分」右にずらして書く決まりがあります 。これを「インデント」と呼びます。このズレがあることで、Pythonは「どこまでが条件が一致した時の処理か」を理解します 。


図2:インデントの構造
「そうでなければ」を追加する: else と elif
一つの条件だけでなく、「雨なら傘、そうでなければ帽子」のように分岐を増やしたい時に使うのが else と elif です 。
二者択一の else
Python
temperature = 25
if temperature >= 30:
print("今日は暑いですね。")
else:
print("過ごしやすい天気です。") # 条件に合わなかったらここを実行
たくさんの分岐を作る elif
elif は「そうでなくて、もし~なら」という意味です。上から順番にチェックされ、最初に当てはまったものだけが実行されます 。
Python
score = 85
if score >= 90:
print("素晴らしい! Aランクです。")
elif score >= 80:
print("よく頑張りました。 Bランクです。")
else:
print("次はもっと頑張りましょう。")
複数の条件を組み合わせる:論理演算子
「お腹が空いていて、かつ、お金があるなら外食する」といった複雑な条件は、and(かつ)、or(または)、not(~ではない)を使って表現します 。
and: 両方の条件が正しい時だけOKor: どちらか片方が正しければOKnot: TrueとFalseをひっくり返す
Python
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("入場できます。")
最新の賢い分岐: match-case (Python 3.10以降)
最近のPythonには、match-case というより強力な分岐方法が加わりました 。これは、データの「形」を見て仕分けをするイメージです。
Python
# コマンドによって動きを変える例
command = "start"
match command:
case "start":
print("システムを起動します。")
case "stop":
print("終了します。")
case _:
print("不明なコマンドです。") # どれにも当てはまらない場合(ワイルドカード)
_(アンダースコア)は「その他すべて」を意味します 。最新のPython 3.14では、この match-case の中で使うキーワードの入力ミスに対しても、非常に分かりやすいエラーメッセージが出るようになっています 。


図3:match-caseのイメージ
Python 3.13 / 3.14 で初心者への優しさがパワーアップ!
これからPythonを始める皆さんに朗報です。最新のPythonは「エラー」を怖がらなくて済むように進化しています。
魔法の言葉「もしかして?」
プログラミングで一番多いミスは、つづりの間違い(タイポ)です。
Python 3.14では、例えば while と書くべきところを whille と間違えると、エラーメッセージで 「Did you mean 'while'?(もしかして while のことですか?)」 と提案してくれます 。
REPL(対話モード)の進化
コマンドプロンプトなどでPythonを直接動かす「REPL」という環境が、3.13から非常に使いやすくなりました。
- 色がつく: キーワードに色がつくので、打ち間違いがすぐに分かります 。
- ヒントが出る: 文字を打っている途中で、候補を表示してくれます 。
初心者が気をつけるべき「3つのポイント」
最後に、プロっぽく綺麗なコードを書くためのコツをお伝えします。
- ネスト(入れ子)を深くしすぎない:
ifの中にifを何回も書くと、迷路のようになってしまいます。早めにreturnするなどして、横に長くならないようにしましょう。 ==とisの違い:==は「中身の数値」が同じかチェックし、isは「全く同じモノ」かチェックします。初心者のうちは、特別な理由がない限り==を使い、Noneをチェックする時だけis Noneを使うと覚えましょう。- エラーメッセージをよく読む: 最新のPythonは、エラーの中に解決のヒントを隠してくれています。英語だからと飛ばさずに、最後の一行を読んでみてください。
参考資料
- What’s New In Python 3.14, https://docs.python.org/3/whatsnew/3.14.html
- Python Control Flow Tools, https://docs.python.org/3/tutorial/controlflow.html
- Python Data Model, https://docs.python.org/3/reference/datamodel.html
- Python Standard Types, https://docs.python.org/3/library/stdtypes.html
- Python Conditional Statements, https://realpython.com/python-conditional-statements/
- Structural Pattern Matching in Python, https://realpython.com/structural-pattern-matching/
- PEP 636 – Structural Pattern Matching: Tutorial, https://peps.python.org/pep-0636/
- Python Match Case Statement, https://www.geeksforgeeks.org/python/python-match-case-statement/
- PEP 622 – Structural Pattern Matching, https://peps.python.org/pep-0622/
- PEP 634 – Structural Pattern Matching: Specification, https://peps.python.org/pep-0634/
- Python Not Equal & Conditional Operators, https://study.com/learn/lesson/python-not-equal-conditional-operators.html
- Python Flow Control, https://launchschool.com/books/python/read/flow_control
- Python Comparison Operators, https://fiveable.me/lists/python-comparison-operators
- Python Operators Guide, https://hackr.io/blog/python-operators
- Python Operators Demystified, https://medium.com/@shanmugapriyay5404/python-operators-demystified-arithmetic-logical-and-comparison-operators-with-examples-7fa819688ced
- PEP 8 – Style Guide for Python Code, https://peps.python.org/pep-0008/
- Python 3.14 New Features, https://realpython.com/python314-new-features/
- How to Write Beautiful Python Code With PEP 8, https://realpython.com/python-pep8/
- PEP 8 Fundamentals, https://codefinity.com/blog/PEP-8
- Good coding practices - PEP 8, https://geo-python.github.io/site/notebooks/L3/gcp-3-pep8.html
- match - case 文の使い方, https://qiita.com/Intel0tw5727/items/6988c62ce4aaa681b151
- Python 3.13 の注目の新機能・変更点, https://programming-mondai.com/python-3-13/
- PEP8の基本事項をわかりやすく端的に伝える, https://qiita.com/sergicalsix/items/0c3f3e6a8a26770a84be
- Pythonでのif文の書き方, https://hira-labo.com/archives/3611
- Format your Python script following PEP 8, https://nikkie-ftnext.hatenablog.com/entry/format-your-python-script-following-pep8
- Python 組み込み関数 bool, https://docs.python.org/ja/3/library/functions.html
- Python 組み込み定数, https://docs.python.org/ja/3/library/constants.html
- Python 3.10の新機能! match/case文解説, https://python-beginner.blog/python-match-case/
- match/case文の具体的なパターン例, https://note.com/fine_takin9596/n/n06cf4b098bc2
- 長いif文を複数行で記述する方法, https://bizroad-svc.com/blog/python-if/
- Python独学の完全ガイド2026, https://zenn.dev/gaku1234/articles/python-basics-complete-guide-2026-intro
- Python 3.13 構文エラーの具体例, https://programming-mondai.com/python-3-13/
- Better Stack: Python 3.14 features, https://betterstack.com/community/guides/scaling-python/python-3-14-new-features/
- How to implement Python branching logic, https://labex.io/tutorials/python-how-to-implement-python-branching-logic-434267
- Python Conditional Statements Best Practices, https://www.wscubetech.com/resources/python/conditional-statements
- Mastering Python Conditions Video, https://www.youtube.com/watch?v=QlL35pmx66o
- Python 3.14 New Features Review, https://realpython.com/python314-new-features/
- Python Identity vs Equality, https://dev.to/codepractice/stop-breaking-your-own-code-15-common-python-mistakes-beginners-must-avoid-in-2026-9a7
- Python style basics, https://cs.stanford.edu/people/nick/py/python-style-basics.html
- Python Data Model Updates, https://docs.python.org/3/reference/datamodel.html
- Good coding practices - writing readable code, https://geo-python.github.io/site/notebooks/L3/gcp-3-pep8.html
- Python comparison operators detailed, https://fiveable.me/lists/python-comparison-operators
- Mastering If/Else Statements in Python, https://medium.com/@richelattafuah/mastering-if-else-statements-in-python-with-beginner-friendly-examples-d63b97daa848
ーーーーーーーーーーーーーーーーーーーーー2022年5月23日執筆ーーーーーーーーーーーーーーーーー
はじめに
前回のPython入門(4)では、Pythonでの文字列とinput() 関数について学びました。
Python入門の第五弾として、Pythonの条件式と分岐について紹介します。
この記事を読むと次の疑問について知ることができます。
それでは、Pythonの条件式と分岐をこれから始めようとする初心者向けに分かりやすく解説していきます。
条件式と分岐
Pythonのプログラムでは、他のプログラム言語と同様に次の3つの処理の組み合わせで実行されます。
今回は、「2.分岐処理」について紹介していきます。
比較演算子
Pythonでは、xよりもyの方が大きい(x < y)、xよりもyの方が小さい(x > y)、xとyは同じである(x ₌₌ y)と言うように、xとyを比較する演算子があり、この演算子を利用して条件式を作ることができます。
比較演算子に次のようなものがあります。
| 演算子 | 内容説明 |
| x == y | x と y が等しい |
| x != y | x と y が等しくない |
| x > y | x は y より大きい |
| x >= y | x は y 以上(等しいか大きい) |
| x < y | x は y よりも小さい |
| x <= y | x は y 以下(等しいか小さい) |
このような演算子を含む条件式があった際に、条件式のデータ型は真偽型(Boolean)と呼び、条件式が正しい場合は、「True」を、条件式が正しくない場合は「False」をとります。
例えば、x に 100 、y に200とした場合、Google Colabでの結果は次のようになります。


文字列の比較
前述の「比較演算子」では、x や y に数値を代入して比較を行いましたが、当然数値ではなく「文字列」なども比較が行えます。
しかし、文字列の場合は数値の比較と異なり概念的に難しいです。
一般的には、次のルールにしたがって比較が行われます。
上述のルールでもわからない場合は、UTF-8 (Pythonの標準の文字コード、Unicode Transformation Format, and the ‘8’)のコードポイントを調べれば、文字列の大小を知ることができます。
コンピュータで扱われる数値に文字列を変換し、その大小を見ればよいことになります。
Pythonでは文字列をコードポイントに変換する関数(ord())があります。


条件分岐
Pythonでは、条件分岐をする文として「if 文」があり、ExcelなどのVBAで利用できるSelect Case文などは使えません(ない)。
条件分岐の一般的な構文は次の通りです。
if 条件式1 :
処理
:
elif 条件式2 :
処理
:
else :
処理
:
「elif 節」は何度でも使え、「else節」は最後に1回だけ使えます。
例えば、点数などにより評価を付けるとし、100点満点で90点より高い場合は「評価A」、70点より高い場合は「評価B」、50点より高い場合は「評価C」、50以下の場合は「評価D」とするようなプログラムを考えてみましょう。
下記のプログラムは、x=95としているので、結果は「評価A」となっていますが、x に色々な数値を入れて見て試して見て下さい。


また、場合によっては「elif 節」や「else節」はなくともよいです。
例えば、点数が70点以上であれば「合格」とするプログラムを書くのであれば、次のようになります。


また、点数が70点以上であれば「合格」、70より少なければ「不合格」とするプログラムを書くのであれば、次のようになります。


おわりに
如何だったでしょうか?
条件式と分岐、比較演算子、文字列の比較、条件分岐などについて解説してきました。
この記事を読みながらPythonを学んでもらえればと思います。
次をお楽しみに?
以上です。




コメント