Pythonの条件式と分岐、これから始めようとする初心者向けに分かりやすく解説|Python入門(5)

Python
この記事は約15分で読めます。

ーーーーーーーーーーーーーーーーーーーーー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

一つの条件だけでなく、「雨なら傘、そうでなければ帽子」のように分岐を増やしたい時に使うのが elseelif です 。

二者択一の 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: 両方の条件が正しい時だけOK
  • or: どちらか片方が正しければOK
  • not: 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つのポイント」

最後に、プロっぽく綺麗なコードを書くためのコツをお伝えします。

  1. ネスト(入れ子)を深くしすぎない: if の中に if を何回も書くと、迷路のようになってしまいます。早めに return するなどして、横に長くならないようにしましょう。
  2. ==is の違い: == は「中身の数値」が同じかチェックし、is は「全く同じモノ」かチェックします。初心者のうちは、特別な理由がない限り == を使い、None をチェックする時だけ is None を使うと覚えましょう。
  3. エラーメッセージをよく読む: 最新のPythonは、エラーの中に解決のヒントを隠してくれています。英語だからと飛ばさずに、最後の一行を読んでみてください。

参考資料

  1. What’s New In Python 3.14, https://docs.python.org/3/whatsnew/3.14.html
  2. Python Control Flow Tools, https://docs.python.org/3/tutorial/controlflow.html
  3. Python Data Model, https://docs.python.org/3/reference/datamodel.html
  4. Python Standard Types, https://docs.python.org/3/library/stdtypes.html
  5. Python Conditional Statements, https://realpython.com/python-conditional-statements/
  6. Structural Pattern Matching in Python, https://realpython.com/structural-pattern-matching/
  7. PEP 636 – Structural Pattern Matching: Tutorial, https://peps.python.org/pep-0636/
  8. Python Match Case Statement, https://www.geeksforgeeks.org/python/python-match-case-statement/
  9. PEP 622 – Structural Pattern Matching, https://peps.python.org/pep-0622/
  10. PEP 634 – Structural Pattern Matching: Specification, https://peps.python.org/pep-0634/
  11. Python Not Equal & Conditional Operators, https://study.com/learn/lesson/python-not-equal-conditional-operators.html
  12. Python Flow Control, https://launchschool.com/books/python/read/flow_control
  13. Python Comparison Operators, https://fiveable.me/lists/python-comparison-operators
  14. Python Operators Guide, https://hackr.io/blog/python-operators
  15. Python Operators Demystified, https://medium.com/@shanmugapriyay5404/python-operators-demystified-arithmetic-logical-and-comparison-operators-with-examples-7fa819688ced
  16. PEP 8 – Style Guide for Python Code, https://peps.python.org/pep-0008/
  17. Python 3.14 New Features, https://realpython.com/python314-new-features/
  18. How to Write Beautiful Python Code With PEP 8, https://realpython.com/python-pep8/
  19. PEP 8 Fundamentals, https://codefinity.com/blog/PEP-8
  20. Good coding practices - PEP 8, https://geo-python.github.io/site/notebooks/L3/gcp-3-pep8.html
  21. match - case 文の使い方, https://qiita.com/Intel0tw5727/items/6988c62ce4aaa681b151
  22. Python 3.13 の注目の新機能・変更点, https://programming-mondai.com/python-3-13/
  23. PEP8の基本事項をわかりやすく端的に伝える, https://qiita.com/sergicalsix/items/0c3f3e6a8a26770a84be
  24. Pythonでのif文の書き方, https://hira-labo.com/archives/3611
  25. Format your Python script following PEP 8, https://nikkie-ftnext.hatenablog.com/entry/format-your-python-script-following-pep8
  26. Python 組み込み関数 bool, https://docs.python.org/ja/3/library/functions.html
  27. Python 組み込み定数, https://docs.python.org/ja/3/library/constants.html
  28. Python 3.10の新機能! match/case文解説, https://python-beginner.blog/python-match-case/
  29. match/case文の具体的なパターン例, https://note.com/fine_takin9596/n/n06cf4b098bc2
  30. 長いif文を複数行で記述する方法, https://bizroad-svc.com/blog/python-if/
  31. Python独学の完全ガイド2026, https://zenn.dev/gaku1234/articles/python-basics-complete-guide-2026-intro
  32. Python 3.13 構文エラーの具体例, https://programming-mondai.com/python-3-13/
  33. Better Stack: Python 3.14 features, https://betterstack.com/community/guides/scaling-python/python-3-14-new-features/
  34. How to implement Python branching logic, https://labex.io/tutorials/python-how-to-implement-python-branching-logic-434267
  35. Python Conditional Statements Best Practices, https://www.wscubetech.com/resources/python/conditional-statements
  36. Mastering Python Conditions Video, https://www.youtube.com/watch?v=QlL35pmx66o
  37. Python 3.14 New Features Review, https://realpython.com/python314-new-features/
  38. Python Identity vs Equality, https://dev.to/codepractice/stop-breaking-your-own-code-15-common-python-mistakes-beginners-must-avoid-in-2026-9a7
  39. Python style basics, https://cs.stanford.edu/people/nick/py/python-style-basics.html
  40. Python Data Model Updates, https://docs.python.org/3/reference/datamodel.html
  41. Good coding practices - writing readable code, https://geo-python.github.io/site/notebooks/L3/gcp-3-pep8.html
  42. Python comparison operators detailed, https://fiveable.me/lists/python-comparison-operators
  43. 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つの処理の組み合わせで実行されます。

  1. 順次処理
    上から順番に下に向かって処理が進みます。
  2. 分岐処理
    条件式により分岐して処理が進みます。
  3. 繰り返し処理(反復処理)
    条件式の条件を満たす間は同じ処理を繰り返したり、一定の回数処理を繰り返します。

 今回は、「2.分岐処理」について紹介していきます。

比較演算子

 Pythonでは、xよりもyの方が大きい(x < y)、xよりもyの方が小さい(x > y)、xとyは同じである(x ₌₌ y)と言うように、xとyを比較する演算子があり、この演算子を利用して条件式を作ることができます。

 比較演算子に次のようなものがあります。

演算子内容説明
x == yx と y が等しい
x != yx と y が等しくない
x > yx は y より大きい
x >= yx は y 以上(等しいか大きい)
x < yx は y よりも小さい
x <= yx は y 以下(等しいか小さい)

 このような演算子を含む条件式があった際に、条件式のデータ型は真偽型(Boolean)と呼び、条件式が正しい場合は、「True」を、条件式が正しくない場合は「False」をとります。

 例えば、x に 100 、y に200とした場合、Google Colabでの結果は次のようになります。

文字列の比較

 前述の「比較演算子」では、x や y に数値を代入して比較を行いましたが、当然数値ではなく「文字列」なども比較が行えます。

 しかし、文字列の場合は数値の比較と異なり概念的に難しいです。

 一般的には、次のルールにしたがって比較が行われます。

  1. 数値の文字列は、0より数が大きくなるほど大きくなります。(0<1<…<5…<9)
  2. 小文字のアルファベットでは、a が最も小さくz が最も大きい。(a<b…<o<p…<z)
  3. 大文字のアルファベットと小文字のアルファベットでは大文字の方が小さい。(A<a…O<o…Z<z)
  4. 数値の文字列よりアルファベットの文字列の方が大きい。(0<A<a)
  5. 「ひらがな」より「カタカナ」の方が大きい。(あ<ア)
  6. 「ひらがな」、「カタカナ」よりも「漢字」の方が大きい。(あ<ア<亜)

 上述のルールでもわからない場合は、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 に色々な数値を入れて見て試して見て下さい。

条件式を書く上で注意すること
  1. if 条件式、elif 節、else節の後に忘れずに「:」を入れること
  2. if 条件式、elif 節、else節の処理部分は、4文字分字下げすること

 また、場合によっては「elif 節」や「else節」はなくともよいです。

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

 

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

おわりに

 如何だったでしょうか?

 条件式と分岐、比較演算子、文字列の比較、条件分岐などについて解説してきました。

 この記事を読みながらPythonを学んでもらえればと思います。

 次をお楽しみに?

以上です。

 

コメント

タイトルとURLをコピーしました