プログラミングを学び始めて、「もし〇〇だったら△△する」という処理を作りたいと思ったことはありませんか?
例えば、クイズに正解したときに「正解!」と表示してスコアを加算し、間違えたときには「残念!」と表示させる。このような「状況に応じた判断」をコンピューターに行わせるための機能が「条件分岐」です。
Pythonでこの条件分岐を実現するのが「if文」です。if文をマスターすれば、作れるプログラムの幅が一気に広がります。
この記事では、Pythonのif文の基本的な書き方から、注意すべきルール、そして応用的な記述方法まで、初心者の方に向けて詳しく解説します。
Pythonのif文とは?
if文は、ある条件が「真(True)」か「偽(False)」かを判定し、その結果に基づいて実行する処理を分けるための構文です。
Pythonに限らず、JavaやPHP、Rubyなど多くの言語で採用されている非常に基本的な機能であり、一度習得すれば他の言語を学ぶ際にも応用が効きます。
条件式の評価結果は「boolean型」と呼ばれる、True(真)またはFalse(偽)のどちらかの値を持つ型で扱われます。この判定結果によって、プログラムが次にどの処理に進むかが決まります。
【最重要】if文を書くときの絶対ルール
Pythonのif文を書く際、他の言語と大きく異なり、特に初心者がつまずきやすいポイントが2つあります。ここを間違えるとエラー(IndentationErrorなど)が発生するため、必ず押さえておきましょう。
1. 条件式の終わりにはコロン(:)をつける
`if 条件式` の最後には、必ず半角のコロン `:` を記述します。これにより、「ここから先が条件を満たしたときの処理ブロックですよ」ということをPythonに伝えます。
2. インデント(字下げ)でグループ化する
Pythonでは、どの処理がif文の中に含まれているかを「インデント(行頭の空白)」で判断します。
- インデントの意味: 同じ数だけ空白が入っている行は、一つのグループ(ブロック)として扱われます。
- 推奨される書き方: 一般的に、1段のインデントには「半角スペース4つ」を使用することが推奨されています。
- 注意点: タブ文字の使用は推奨されていません。見た目が揃っていても、内部的にスペースと混在しているとエラーの原因になります。必ずスペースで統一しましょう。
インデントが戻った時点で、そのif文の処理ブロックは終了したとみなされます。
if文の基本パターンと書き方
条件分岐の複雑さに合わせて、主に3つの書き方があります。
① 最もシンプルな「if文」
「もし条件を満たすなら実行し、満たさないなら何もしない」というパターンです。
“`python # サンプルコード value = 1 if value == 1: print("1です") “`
この場合、`value`が1であれば「1です」と出力されますが、それ以外の数字であれば何も起きずに処理が終了します。
② 2択で分ける「if…else文」
「もし条件を満たすなら処理Aを、そうでなければ処理Bを実行する」というパターンです。
“`python # サンプルコード age = 10 if age < 15: print("15歳未満です") else: print("15歳以上です") “`
`else`ブロックは、`if`の条件が偽(False)だった場合の「受け皿」となります。
③ 3つ以上の選択肢を作る「if…elif…else文」
「条件Aなら処理A、そうでなくて条件Bなら処理B、どれも当てはまらなければ処理C」というように、複数の条件を順番にチェックしたい時に使います。
“`python # サンプルコード score = 85 if score >= 90: print("優秀賞です") elif score >= 70: print("合格です") else: print("不合格です") “`
`elif`は「else if」の略です。上から順番に条件が判定され、最初に「真(True)」になったブロックだけが実行されます。一度条件が合致すると、それ以降の`elif`や`else`は無視されるため、条件を書く順番が重要になります。
なお、Pythonには他の言語にある「Switch文」は存在しません。複雑な分岐もすべてこの`if…elif…else`で記述します。
条件式を作るための「演算子」
if文の `if` の後ろに書く「条件式」を作るには、「比較演算子」と「論理演算子」を使います。
比較演算子(2つの値を比べる)
2つの値を比較して、結果をTrueかFalseで返します。
| 演算子 | 意味 | 例 |
|---|---|---|
| `==` | 等しい | `a == b` |
| `!=` | 等しくない | `a != b` |
| `>` | より大きい | `a > b` |
| `<` | より小さい | `a < b` |
| `>=` | 以上 | `a >= b` |
| `<=` | 以下 | `a <= b` |
| `in` | 中に含まれる | `'a' in 'apple'` |
| `not in` | 中に含まれない | `'z' not in 'apple'` |
特に注意したいのが `==` です。値を代入する時は `=` ですが、比較するときは必ず `==` と2つ重ねて書きます。
論理演算子(複数の条件を組み合わせる)
「かつ」「または」のように、複数の条件をひとまとめにしたい時に使います。
- `and`(かつ): 全ての条件がTrueのときだけTrueになります。
- `or`(または): 少なくとも一つの条件がTrueであればTrueになります。
- `not`(〜ではない): TrueならFalseに、FalseならTrueに反転させます。
(例)`if age >= 20 and has_ticket == True:` (20歳以上 かつ チケットを持っている場合)
さらにステップアップ:応用的な書き方
基本を覚えたら、より効率的な書き方に挑戦してみましょう。
三項演算子(1行で書くif文)
簡単な条件分岐であれば、1行で簡潔に記述する方法があります。これを「三項演算子(条件演算子)」と呼びます。
`[真のときの値] if [条件式] else [偽のときの値]`
という形式で記述します。変数に値を代入する際などに非常に便利です。
比較演算子の連結
Pythonでは `a < x < b` のように、比較演算子を連結して範囲を指定して記述することができます。これは他言語には少ないPythonらしい便利な書き方です。
ネスト(入れ子)の注意点
if文の中にさらにif文を書くことを「ネスト」と呼びます。
“`python if 条件A: if 条件B: # AとBの両方を満たしたときの処理 “`
ネストを深くしすぎると、インデントがどんどん右に寄り、コードが読みづらくなります(可読性の低下)。可能な限り `and` 演算子を使って条件をまとめるなど、シンプルに保つ工夫をしましょう。
まとめ
Pythonのif文は、プログラムに「判断」をさせるための心臓部ともいえる機能です。
書き方のポイントをもう一度まとめます。
- 基本構文: `if` → `elif` → `else` の順で構成される。
- 必須ルール: 条件式の末尾に `:`(コロン)を忘れずに。
- 構造定義: 処理の内容は「インデント(半角スペース4つ)」で明確に分ける。
- 条件作り: 比較演算子(`==`, `>`, `<` など)と論理演算子(`and`, `or`, `not`)を使い分ける。
まずは簡単な数値比較から始めて、徐々に複数の条件を組み合わせた複雑な処理に挑戦してみてください。インデントというPython特有のルールに慣れてくれば、非常に読みやすく書きやすい条件分岐を実装できるようになります。
ピックアップ記事



