Python環境を起動中... 初回のみ数秒かかります
Lesson 4 / 20

条件分岐

このレッスンで学ぶこと

  • if/elif/else で条件によって処理を変えられる
  • インデント(字下げ)がPythonのブロックを表すことを理解できる
  • 条件をネストして複雑な判断ロジックを書ける
  • 三項演算子で1行で条件分岐を書ける

1. if / else の基本

if は「もし〜なら」という条件分岐を作ります。 条件が True のとき if ブロックを、False のとき else ブロックを実行します。

インデント(半角スペース4つ) がブロックを表します。 インデントが正しくないとエラーになるので注意してください。

sample_1.py
Ctrl+Enter
出力

💡 ポイント: 条件式の末尾には必ずコロン(:)をつけます。 コロンを忘れると SyntaxError になります。

2. elif で複数の条件を扱う

3つ以上の場合分けには elif(else if の略)を使います。 上から順に評価し、最初に True になった分岐だけが実行されます。 AIの分類モデルが出力したクラスラベルを処理するときにも同じ構造が登場します。

sample_2.py
Ctrl+Enter
出力

💡 f"..."(f-string)とは?:
print(f"BMI {bmi} → {category}") の先頭の ff-string(フォーマット文字列) の印です。 文字列の中に { } で変数を埋め込むと、その値に置き換えて表示してくれます。

bmi = 27.3
category = "肥満(1度)"
print(f"BMI {bmi} → {category}")   # → BMI 27.3 → 肥満(1度)
print(f"1 + 1 = {1 + 1}")          # → 1 + 1 = 2(式も書ける)

f-string の詳しい使い方(桁数指定・小数点整形など)は レッスン9「文字列の応用」で学びます。

3. ネストした条件分岐

if ブロックの中にさらに if を書くことができます(ネスト)。 ただし深くなりすぎると読みにくくなるので、and/or で整理できないか先に検討しましょう。

sample_3.py
Ctrl+Enter
出力

💡 if has_diabetes: と書ける理由:
has_diabetesTrueFalse のどちらかを持つ bool型 の変数です。 Pythonの if は「その値が真かどうか」を直接判定するため、== True を明示しなくても同じ意味になります。

# この2つはまったく同じ動作
if has_diabetes:           # ✅ Pythonらしい書き方(推奨)
if has_diabetes == True:   # ✅ 動くが冗長

# 「Falseのとき」は not を使う
if not has_diabetes:           # ✅ 推奨
if has_diabetes == False:      # ✅ 動くが冗長

True/False を持つ変数には == True を省略するのがPythonの慣習です。 条件フラグ(学習中/推論中など)の切り替えでもこのパターンが頻出します。

4. 三項演算子(条件式)

シンプルな if/else は1行で書ける 三項演算子(条件式)があります。 書式:値A if 条件 else 値B

PyTorch(ディープラーニングを構築するための人気Pythonライブラリ)のコードでは損失関数の切り替えや、学習/評価モードの切り替えに三項演算子がよく使われます。

sample_4.py
Ctrl+Enter
出力

5. 練習問題

問題 1

血圧を分類しよう

収縮期血圧 sbp = 148 を以下の基準で分類して表示してください。
120未満: 正常 / 120〜139: 正常高値 / 140以上: 高血圧

exercise_1.py
出力
ヒントを見る(答え+解説)
sbp = 148
if sbp < 120:
    print("正常")
elif sbp < 140:
    print("正常高値")
else:
    print("高血圧")   # → 高血圧

elif は「前の条件が False だったとき次の条件を評価する」という意味です。上から順番に評価され、最初に True になった分岐だけが実行されます。

問題 2

年齢区分を判定しよう

年齢 age = 72 を「小児(15歳未満)」「成人(15〜64歳)」「高齢者(65歳以上)」に分類して表示してください。

exercise_2.py
出力
ヒントを見る(答え+解説)
age = 72
if age < 15:
    print("小児")
elif age < 65:
    print("成人")
else:
    print("高齢者")   # → 高齢者

else はどの条件にも当てはまらなかった場合に実行されます。65歳以上の条件を age >= 65 と明示しなくても、上の条件を通り抜けた残り(65以上)が else に入ります。

問題 3

三項演算子で合否を判定しよう

モデルの予測確率 prob = 0.73 について、0.5 以上なら "陽性"、未満なら "陰性" と表示してください。三項演算子で1行で書いてみましょう。

exercise_3.py
出力
ヒントを見る(答え+解説)
prob = 0.73
result = "陽性" if prob >= 0.5 else "陰性"
print(result)   # 陽性

三項演算子の書式は 真のときの値 if 条件 else 偽のときの値 です。シンプルな二択の判定を1行で書けるので、AIの予測結果をラベルに変換する処理でよく使います。

6. まとめ

このレッスンのポイント

  • if 条件:elif 条件:else: の順で書く
  • Pythonのブロックはインデント(スペース4つ)で表す。これがPythonの最大の特徴
  • 条件は上から順に評価され、最初に True になった分岐だけ実行される
  • 三項演算子 A if 条件 else B でシンプルな分岐を1行で書ける
  • AIの分類出力をラベルに変換するロジックは if/elif で実装する

自由に試してみましょう。

free_practice.py
出力

完了するとコース一覧に進捗が記録されます