プログラミング

Step 9: 条件で処理を分ける「if文」の使い方 🤖

Step 9: 条件で処理を分ける「if文」の使い方 🤖

概要

フリーランスエンジニア スリーネクスト

Pythonプログラミングにおける条件分岐の基本「if文」の習得を目的とした解説書です。最もシンプルなifから、条件に合わない場合を処理するelse、さらに複数の条件で分岐させるelifまでを、具体的なコード例を交えて段階的に説明します。

比較演算子(==, >など)や論理演算子(and, or)を使い、より複雑な条件式を組み立てる方法も網羅。各構文の処理の流れをMermaid形式のフローチャートで視覚的に示すことで、初心者でもロジックを直感的に掴めるよう工夫しています。

目次
「ゼロから始めるPython学習」各ステップのタイトル案
ゼロから始めるPython学習 STEP20目次

プログラミング未経験者向けPython入門講座。環境構築から変数、if文、for文、関数といった基本までを20のステップでわかりやすく解説します。自分のペースで一歩ずつ着実に学び、プログラミングの第一歩を踏み出しましょう!

続きを見る

はじめに

プログラミングの世界へようこそ!これまでの学習で、変数を使ってデータを入れたり、計算させたりすることができるようになりましたね。今回は、プログラムをさらに賢く、そして柔軟にするための魔法、「if文」について学びます。

if文は、ひと言でいうと「もし○○だったら、△△する」という、条件による処理の分岐を行うための命令です。私たちの日常生活でも、「もし明日晴れたら、ピクニックに行こう」「もしお腹が空いたら、ご飯を食べよう」といったように、無意識に条件分岐を使っています。プログラムにこの考え方を教えるのがif文の役割です。

基本の「if」:もし〜だったら

まずは最もシンプルなif文の形から見ていきましょう。これは、特定の条件が満たされた(True といいます)ときだけ、決まった処理を実行するものです。

構文

if 条件式:
    # 条件式がTrueのときに実行される処理
    # この部分はインデント(字下げ)する

重要なポイントが2つあります。

  1. コロン(:: if 条件式 の最後には、必ずコロンを付けます。これは「ここから条件が満たされたときの処理が始まりますよ」という合図です。
  2. インデント: コロンの次の行から書く処理は、必ず半角スペース4つ(またはタブ1つ)でインデント(字下げ)します。このインデントされた部分が、if文のブロック(かたまり)として認識されます。インデントを忘れるとエラーになるので注意しましょう。

具体例:年齢チェック

例えば、特定の年齢以上であれば「大人です」と表示するプログラムを書いてみましょう。

age = 20

if age >= 18:
    print("あなたは大人です。")

print("プログラムを終了します。")

このコードを実行すると、変数ageは20なので、age >= 18(ageは18以上)という条件式が満たされ(Trueになり)、「あなたは大人です。」と表示されます。最後のprint("プログラムを終了します。")はインデントされていないため、if文の条件に関わらず必ず実行されます。

もしageを15にしてみると、age >= 18が満たされない(False になる)ため、インデントされたprint("あなたは大人です。")は実行されず、何も表示されないまま「プログラムを終了します。」だけが表示されます。

この流れを図にすると、以下のようになります。

graph TD;
    A[プログラム開始] --> B{"age >= 18 ?"};
    B -- True --> C["あなたは大人です。"と表示];
    B -- False --> D[プログラム終了];
    C --> D;

「else」:〜ではなかったら

「もし晴れたらピクニックに行く」だけだと、雨が降ったときにどうするか分かりませんよね。そこで登場するのがelseです。「もし〜ではなかったら、こちらを実行する」という処理を追加できます。

構文

if 条件式:
    # 条件式がTrueのときに実行される処理
else:
    # 条件式がFalseのときに実行される処理

elseの後にもコロン(:)を忘れずに付け、その後の処理はインデントします。

具体例:偶数か奇数か

与えられた数字が偶数か奇数かを判定するプログラムは、elseを使うと簡単に書けます。数字を2で割った余りが0なら偶数、そうでなければ奇数です。

number = 7

# % は割り算の余りを求める演算子
if number % 2 == 0:
    print(f"{number}は偶数です。")
else:
    print(f"{number}は奇数です。")

このコードでは、numberは7なのでnumber % 2 == 0という条件は満たされません(False)。そのため、elseブロックの中の処理が実行され、「7は奇数です。」と表示されます。

このif-else文の流れは以下のようになります。

graph TD;
    A[プログラム開始] --> B{"number % 2 == 0 ?"};
    B -- True --> C[偶数ですと表示];
    B -- False --> D[奇数ですと表示];
    C --> E[プログラム終了];
    D --> E;

「elif」:さらに別の条件で分けたい

条件が「Aか、Aでないか」の2択だけではない場合も多くあります。「もしAなら処理1、そうではなくてもしBなら処理2、どちらでもなければ処理3」のように、複数の条件で処理を分けたいときに使うのがelifです。elifは "else if" の略です。

構文

if 条件式1:
    # 条件式1がTrueのときの処理
elif 条件式2:
    # 条件式1がFalseで、条件式2がTrueのときの処理
else:
    # すべての条件式がFalseのときの処理

elifはいくつでも追加できます。プログラムは上から順番に条件式をチェックし、最初にTrueになったブロックだけを実行して、残りのelifelseは無視します。

具体例:成績評価

点数に応じて成績を「優」「良」「可」「不可」で評価するプログラムを作ってみましょう。

score = 85

if score >= 90:
    print("評価:優")
elif score >= 80:
    print("評価:良")
elif score >= 60:
    print("評価:可")
else:
    print("評価:不可")

このコードでは、scoreは85です。

  1. 最初のif score >= 90はFalseです。
  2. 次のelif score >= 80はTrueです。
  3. ここで「評価:良」と表示され、if文全体の処理は終了します。
  4. その後のelif score >= 60elseは、たとえ条件を満たしていてもチェックされません。

この流れを図で見てみましょう。

graph TD;
    A[プログラム開始] --> B{"score >= 90 ?"};
    B -- True --> C["評価:優"];
    B -- False --> D{"score >= 80 ?"};
    D -- True --> E["評価:良"];
    D -- False --> F{"score >= 60 ?"};
    F -- True --> G["評価:可"];
    F -- False --> H["評価:不可"];
    C --> I[プログラム終了];
    E --> I;
    G --> I;
    H --> I;

if文を使いこなすための演算子

if文の「条件式」では、様々な演算子を使って複雑な条件を作ることができます。

比較演算子

2つの値を比較するための演算子です。

演算子意味
==等しいa == b
!=等しくないa != b
<より小さいa < b
>より大きいa > b
<=以下a <= b
>=以上a >= b

=が1つだと「代入」の意味になるので、比較の際は必ず==と2つ書くように注意してください。

論理演算子

複数の条件を組み合わせるために使います。

  • and (かつ) 条件A and 条件B のように使い、AとBの両方がTrueのときだけ全体がTrueになります。Pythonage = 25 is_student = True # 20歳以上で、かつ、学生であるか? if age >= 20 and is_student: print("学割が使える20歳以上の方です。")
  • or (または) 条件A or 条件B のように使い、AとBのどちらか一方でもTrueであれば全体がTrueになります。
```python
day = "Sunday"

# 日曜日または土曜日か?
if day == "Sunday" or day == "Saturday":
    print("今日は週末です!")
```
  • not (ではない) not 条件A のように使い、条件AのTrue/Falseを反転させます。Pythonis_raining = False # 雨が降っていないか? if not is_raining: print("傘は必要ありません。")

まとめ

今回は、プログラムに「判断力」を与えるif文について学びました。

  • if: 基本の条件分岐。「もし〜なら」
  • else: ifの条件に当てはまらなかった場合の処理。「そうでなければ」
  • elif: 複数の条件で分岐したいときの追加の条件。「そうではなく、もし〜なら」

これらのif, elif, elseを比較演算子や論理演算子と組み合わせることで、非常に複雑で賢いプログラムを作ることができます。if文はプログラミングの根幹をなす非常に重要な機能です。色々な条件を自分で考えてコードを書き、その動作を確かめながら、ぜひマスターしてくださいね!🚀

目次
「ゼロから始めるPython学習」各ステップのタイトル案
ゼロから始めるPython学習 STEP20目次

プログラミング未経験者向けPython入門講座。環境構築から変数、if文、for文、関数といった基本までを20のステップでわかりやすく解説します。自分のペースで一歩ずつ着実に学び、プログラミングの第一歩を踏み出しましょう!

続きを見る

-プログラミング