このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】条件分岐のif文

条件分岐のif文

 条件分岐の if 文は、プログラムの実行フローを状況に応じて変化させるための基本的かつ強力な制御構造です。Pythonでは、if 文を使って条件が True か False かを評価し、条件に合致する場合にのみ特定の処理を実行することができます。これにより、プログラムは状況に応じた柔軟な動作を行うことが可能となります。
 ここでは、if 文の基本構文、実行の流れ、そして応用例や注意点について、具体的なコード例や表を用いて詳しく解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.if文の基本概念

 if 文は、指定した条件式の評価結果に基づいてプログラムの一部を実行するための構文です。多くのプログラミング言語と同様に、Pythonでもif文は条件分岐の基本となります。ここでは、if 文の構文と基本的な動作について学びます。

1.1. if文の基本構文

if文の基本的な書き方は、次の通りです。

if 条件式:
    実行する文1
    実行する文2
    # 複数行の文をインデントして記述

この構文のポイントは以下の通りです。

  • 条件式: Trueまたは False に評価される式を記述します。
  • コロン (:): 条件式の終わりを示し、次の行からインデントされたブロックがif文の本体となります。
  • インデント: Pythonではインデントが文の構造を定義するため、if 文内の文は必ず同じインデント幅で記述する必要があります。

サンプルプログラム

temperature = 35
if temperature > 30:
    print("It's hot!")
    print("Turn on the air conditioner.")

実行結果

It's hot!
Turn on the air conditioner.

解説

  • この例では、変数 temperature が30より大きいかどうかを評価しています。
  • 条件がTrue の場合、if 文内の2つの print 文が実行され、「It's hot!」と「Turn on the air conditioner.」が出力されます。

1.2. if文の処理の流れとインデントの重要性

 if 文は条件式の評価結果に応じて、その内部の文を実行するかどうかを決定します。インデントが正しくなければ、Python はどの文がif文のブロックに属するのかを判断できず、エラーになります。

サンプルプログラム

score = 85
if score >= 90:
    print("Excellent!")   # この文は条件がTrueのときのみ実行される
print("Evaluation complete.")  # この文は常に実行される

実行結果

Evaluation complete.

解説

  • ここでは、score >= 90 がFalseの場合、"Excellent!" は実行されず、"Evaluation complete." は必ず表示されます。
  • if 文の内部と外部の文は、インデントの違いによって区別されます。
  • インデントの深さは、標準的にはスペース4個(またはタブ1個)を推奨します(PEP8に準拠)。

2.if文の応用と注意点

基本構文を理解したら、if 文をより応用的に使う方法や、記述時の注意点を学びます。

2.1. 複数条件の処理

 if文は、条件に応じて異なる処理を実行するため、elifelse を組み合わせて複数の条件分岐を実現できます。

サンプルプログラム

score = 75
if score >= 90:
    print("Grade: A")
elif score >= 80:
    print("Grade: B")
elif score >= 70:
    print("Grade: C")
else:
    print("Grade: D")

実行結果

Grade: C

解説

  • elif は「それ以外の場合で、かつその条件がTrueなら」という意味です。
  • 複数の条件が連続して評価され、最初に Trueとなった条件のブロックが実行されます。
  • すべての条件がFalseの場合、else ブロックが実行されます。

2.2. 1行で書くif文とコロン・セミコロンの使用

 Pythonでは、条件が単一の文のみの場合、1行で if を記述することもできます。ただし、PEP8 では複数行に分けることが推奨されています。

if score >= 90: print("Excellent!")

 また、1行で複数の文を記述するにはセミコロン ; を使用できますが、可読性の観点から一般的には推奨されません。

if score >= 90: print("Excellent!"); print("Keep it up!")

解説

  • コロン : の後に1行で文を記述する場合、条件が True ならその1行の文が実行されます。
  • セミコロン ; を使うと1行に複数の文が続けて書けますが、長いコードになる場合は改行と適切なインデントを用いるのが良いでしょう。

まとめ

条件分岐の if 文は、プログラムの実行フローを動的に変化させるための基本的なツールです。

  • 基本構文if 条件式: とコロン・インデントによって、条件が True の場合のみ実行されるブロックを定義します。
  • 処理の流れ: 条件式が False の場合は、if ブロック内の文は実行されず、インデントが終了した先の文が続けて実行されます。
  • 応用elifelse を用いて複数の条件を評価するほか、1行での記述やセミコロンを利用した複数文の記述など、柔軟な書き方が可能です。

 これらの if 文の特性を理解し活用することで、プログラムに条件に応じた分岐処理を取り入れ、より柔軟でダイナミックなアプリケーションを構築できるようになります。