Pythonの条件分岐入門:if・elif・elseの基本と使い方

python logo notext.svg

プログラムを書くうえで、「条件によって処理を分ける」ことは避けて通れません。

Pythonでは、この処理を if 文で書きます。
基本的な使い方はシンプルですが、書き方次第でコードの見やすさが大きく変わる部分でもあります。

この記事では、if文の基本から、elif を使った整理の仕方、
さらに一行で書く方法まで順番に見ていきます。

Pythonの導入についてはこちら。

Python入門:最初のプログラムを作って実行する方法 – Lean Data Office

Python環境構築のやり方|初心者向け完全ガイド – Lean Data Office

条件分岐の基本

n = 3
if n % 3 == 0:
    print("Fizz")
image

まずはシンプルな形です。

このコードでは、「3で割り切れるかどうか」を条件として評価しています。

条件がTrueであれば、そのブロックの処理が実行されます。

FizzBuzz(フィズバズ問題)を考える

FizzBuzz(フィズバズ)問題は、プログラミングの基礎力やロジック思考を確認するためによく使われる、とても有名な問題です。

1から順に数字を出力していきますが、以下のルールがあります:

  • 3の倍数"Fizz" と表示
  • 5の倍数"Buzz" と表示
  • 3と5の両方の倍数"FizzBuzz" と表示
  • それ以外 → 数字そのまま表示

これをif, elseを用いて表現してみます。

for n in range(1, 101):
    if n % 15 == 0:
        print("FizzBuzz")
    else:
        if n % 3 == 0:
            print("Fizz")
        else:
            if n % 5 == 0:
                print("Buzz")
            else:
                print(n)
image
image

このコードは動きますが、少し読みにくさを感じます。

ネスト(入れ子)が深くなっているため、構造が分かりづらくなっています。

elifを使う方法

こういった場合は、elifを使うと整理できます。

for n in range(1, 101):
    if n % 15 == 0:
        print("FizzBuzz")
    elif n % 3 == 0:
        print("Fizz")
    elif n % 5 == 0:
        print("Buzz")
    else:
        print(n)
image

この書き方にすることで、条件が横に並び、読みやすくなります。

elif は「else if」の意味で、
最初の条件に当てはまらなかった場合にだけ評価されます。

if文の基本的な形は、次のようになります。

  • 最初に1つの if
  • 必要に応じて elif をいくつでも追加
  • 最後に任意で else

この流れを意識すると、コードの構造が整理しやすくなります。

elseは必須ではないため、省略することも可能です。

別のif文は別のブロックになるelifではなく、新しくifを書くこともできます。

for n in range(1, 11):
    if n % 3 == 0:
        print("Fizz")
        if n % 2 == 0:
            print("Even")
image

この場合、2つの条件は独立して評価されます。

elifとの違いは、ここで分かります。
elifは「どれか1つだけ実行」ですが、ifを分けると「両方実行される可能性」があります。

条件分岐を一行で書く方法

場合によっては、条件分岐を一行で書きたいこともあります。

n = 3
result = "Fizz" if n % 3 == 0 else n
print(result)
image

この書き方は「三項演算子」と呼ばれます。

条件を評価して、

  • Trueなら前の値
  • Falseなら後ろの値

を返します。

三項演算子はつなげて書くこともできます。

n = 5
result = "FizzBuzz" if n % 15 == 0 else \
    "Fizz" if n % 3 == 0 else \
        "Buzz" if n % 5 == 0 else n
print(result)
image

このようにすることで、if文と同じロジックを一行で表現できます。

この書き方はコンパクトですが、
条件が増えすぎると読みにくくなります。

元のif文と比べると、処理の流れが分かりづらくなることもあります。

そのため、短く書けるからといって常にこちらを使うのではなく、
読みやすさとのバランスを考えることが大切です。

リストを用いた方法

三項演算子は、リストと組み合わせることもできます。

result = [
"FizzBuzz" if n % 15 == 0 else
"Fizz" if n % 3 == 0 else
"Buzz" if n % 5 == 0 else n
for n in range(1, 21)
]
print(result)
image

このようにすることで、複数の値をまとめて生成することもできます。

if文はシンプルな構文ですが、使い方によってコードの読みやすさが大きく変わります。

ネストが深くなってきたらelifで整理する、
短く書ける場合は三項演算子を使う、といった選択ができると便利です。

特にPythonでは「読みやすいコードを書く」ことが重視されるため、
単に動くコードだけでなく、構造が分かりやすい書き方を意識することが重要になります。

今回の書き方は、条件分岐を扱う上での基本になる部分なので、
いくつかの例で試しながら慣れていくと理解しやすくなります。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。