本文へスキップ

Python Typing Tutor

サンプルレッスン一覧

Chapter 2 / Control Flow

Lesson 2.1 条件分岐

if / elif / else とインデントの基本を定着させます。

このページは無料で閲覧できるサンプルです。実際に手を動かして写経し、進捗を保存して学習を進めるには、ログインしてから学習ページへお進みください。

このレッスンで学ぶこと

このレッスンは Chapter 2 前半のまとめで、if・elif・else を組み合わせて 3 通り以上の場合分けを行う形を練習します。「条件 A、条件 B、それ以外」のような分岐は、採点 (A・B・C 評価)、料金区分 (大人・学生・子ども)、天気判定 (晴れ・曇り・雨) など、実務でも学習でも非常に多く登場します。

elif (else if の省略形) は何個でも連ねられます。Python は上から順に条件を評価し、最初に真になった枝だけを実行して、後ろの枝はスキップします。この「上から順、最初に真になったところだけ」というルールが分かっていないと、思った通りに分岐しないバグの温床になります。

写経 1

写経 1

if と else の基本形をそのまま写経します。

お手本コード
score = 82
if score >= 80:
    print("pass")
else:
    print("retry")
期待される出力
pass

写経 2

写経 2

elif を足して、条件が複数ある形へ進みます。

お手本コード
temperature = 18
if temperature >= 25:
    print("hot")
elif temperature >= 15:
    print("comfortable")
else:
    print("cold")
期待される出力
comfortable

発展問題 (概要のみ)

発展問題

point が 90 以上なら "A"、70 以上なら "B"、それ以外なら "C" を表示する条件分岐を書いてみましょう。

スターターコード
point = 0

発展問題の自動採点はログイン後の学習ページでのみ動作します。

elif は何個でも書ける

if A: ... elif B: ... elif C: ... else: ... のように、elif は 2 個でも 5 個でも自由に増やせます。条件を細かく分けたいときに無理に if をネストせず、横方向に elif を並べて書くのが Python 流です。ネスト (if の中にさらに if) は読みづらくなりがちなので、まずは elif で書けないかを検討してから、それでも足りないときだけネストを使うようにすると、コードの見通しが良くなります。

条件の順番が結果を左右する

Python は if/elif の条件を上から順に評価し、最初に真になった枝だけを実行します。たとえば if point >= 70: ... elif point >= 90: ... と書くと、point = 95 のときも先に 70 以上の枝に入ってしまい、90 以上の枝は永遠に実行されません。条件は「範囲が狭い (厳しい) ものから順に書く」のが鉄則です。点数なら 90 → 70 → それ以外、という順番で並べると正しく動きます。

else は省略できる

「想定外のケースを拾いたい」「最後に default の値を入れたい」というときは else を書きます。一方、「想定された分岐だけが起き、それ以外は何もしなくて良い」ときは else を省略しても構いません。else を書かない場合、すべての条件が偽だと if 全体は何もせずに通り抜けます。

ネストよりも複合条件

  • ネストの例 (読みづらい): if age >= 18: の中に if has_license: のように 2 段にする書き方
  • 複合条件の例 (読みやすい): if age >= 18 and has_license: のように and / or で 1 つの条件にまとめる書き方
  • 選び方の目安: 「両方とも満たすときだけ」なら and、「どちらかを満たすとき」なら or、「条件によって全く別の処理に分岐する」ときはネスト

手を動かして練習しましょう

ログインすると、お手本コードを 1 文字ずつ写経しながらブラウザ上で実行し、合否を確認しながら学習を進められます。進捗は自動で保存されます。