Pythonの条件分岐 完全ガイド|if文の基本から応用テクニックまで

Pythonのif文と様々な条件分岐の使い方【初心者向け】

プログラミングを学ぶ上で、必ず通る道が「条件分岐」です。

「もし〇〇だったら、Aの処理をする。そうでなければ、Bの処理をする」

このように、状況に応じてコンピューターに判断させ、実行する内容を変えるのが条件分岐の役割です。Pythonでは、この条件分岐をシンプルかつ強力に書くための様々な方法が用意されています。

この記事では、基本のif文から、コードをスッキリさせる応用テクニックまで、分かりやすく解説していきます!


基本の形: if, elif, else

まずは、条件分岐の基本となる3つのキーワードをマスターしましょう。

if文:もし〜なら

ifは最も基本的な条件分岐です。「もし条件が正しい(True)なら、中の処理を実行する」というシンプルな役割です。

temperature = 30

# もし気温が25度より高かったら
if temperature > 25:
    print("今日は暑いですね!水分補給を忘れずに。")

else文:そうでなければ

elseifの条件が正しくなかった(False)場合に実行される処理を書くために使います。「ifの条件に当てはまらなかった、それ以外のすべての場合」を担当します。

age = 17

if age >= 20:
    print("成人です。")
else:
    print("未成年です。")

elif文:さらに別の条件なら

ifelseだけでは、「Aか、それ以外か」の2択しか表現できません。3つ以上の選択肢を持たせたい場合に使うのがelif(else ifの略)です。

ifの条件がFalseだった場合に、次のelifの条件をチェックし、Trueであればその中の処理を実行します。elifはいくつでも追加できます。

score = 85

if score >= 90:
    print("素晴らしい!S評価です。")
elif score >= 80:
    print("良い調子!A評価です。")
elif score >= 60:
    print("よく頑張りました。B評価です。")
else:
    print("もう少し!C評価です。")

# 実行結果: 良い調子!A評価です。

ポイント: if, elif, elseのブロックでは、条件に一致した最初のブロックだけが実行され、残りは無視されます。


複数の条件を組み合わせる: and, or, not

「Aであり、かつBである場合」や「AまたはBの場合」のように、複数の条件を組み合わせて判断したいケースもよくあります。その際に使うのが論理演算子です。

  • and (かつ): 両方の条件がTrueの場合にのみ、全体がTrueになります。
  • or (または): どちらか一方の条件でもTrueであれば、全体がTrueになります。
  • not (ではない): 条件のTrue/Falseを反転させます。
hour = 14
is_weekend = True

# and: 平日の昼間かどうか
if hour >= 12 and not is_weekend:
    print("ランチタイムです。")

# or: 休日か夜か
if is_weekend or hour >= 18:
    print("リラックスタイムです。")

応用テクニックでコードをスッキリ!

基本をマスターしたら、次はよりPythonらしい(Pythonicな)書き方にも挑戦してみましょう。

🚀 三項演算子 (条件式)

簡単なif-else文は、三項演算子を使うと1行で書くことができます。

普通の書き方:

score = 75
result = ""
if score >= 60:
    result = "合格"
else:
    result = "不合格"
print(result)

三項演算子を使った書き方:

score = 75
result = "合格" if score >= 60 else "不合格"
print(result) # 合格

「Trueの場合の値」 if 条件式 else 「Falseの場合の値」という構文で、シンプルな代入文がとてもスッキリします。

🚀 辞書(dict)でif-elifの連鎖を置き換える

if-elif-elif...がたくさん続くコードは、読みにくく、新しい条件を追加するのも面倒です。そんな時は、辞書を使うとスマートに解決できる場合があります。

if-elifの例:

command = "start"

if command == "start":
    print("サービスを開始します。")
elif command == "stop":
    print("サービスを停止します。")
elif command == "restart":
    print("サービスを再起動します。")
else:
    print("不明なコマンドです。")

辞書を使った例:

command = "start"

# コマンドとメッセージを辞書にマッピング
responses = {
    "start": "サービスを開始します。",
    "stop": "サービスを停止します。",
    "restart": "サービスを再起動します。"
}

# .get()メソッドで安全に値を取得。キーがなければデフォルト値を返す
message = responses.get(command, "不明なコマンドです。")
print(message)

この方法なら、新しいコマンドを追加したい時も辞書に1行追加するだけで済み、コードの見通しが格段に良くなります。

まとめ

今回はPythonの条件分岐について、基本のif文から応用テクニックまでを紹介しました。

  • 基本は if, elif, else
  • 複雑な条件は and, or, not で組み合わせる
  • 短い分岐は「三項演算子」でスッキリ
  • ifの連鎖は「辞書」でスマートに

条件分岐はプログラミングの根幹をなす機能です。様々な書き方を覚えて、状況に応じて最適な方法を選べるようになると、コードの質が一段と上がりますよ!