[Pythonのはじめ方] Part5: 条件分岐(if, elif, else)

Python

プログラムの流れをコントロールする基本を学びます。

こんにちは!Python学習の旅へようこそ。今回はプログラミングの非常に重要な要素である条件分岐について学びます。条件分岐を使うと、「もし○○だったら△△する、そうでなければ□□する」といったように、状況に応じてプログラムの動作を変えることができます。さっそく見ていきましょう!😊

1. 基本の`if`文:もし~なら…

最も基本的な条件分岐は `if` 文です。これは、指定した条件が真 (True) の場合にのみ、特定の処理を実行します。

構文:

if 条件式:
    # 条件式が真 (True) の場合に実行される処理
    print("条件は真です!")

ポイントは、条件式の後にコロン `:` をつけることと、実行したい処理の前にインデント(字下げ)を入れることです。インデントは通常、スペース4つで表現されます。

例: 年齢が20歳以上かチェックしてみましょう。

age = 25

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

このコードを実行すると、`age` は25で20以上なので、「あなたは成人です。」と表示されます。

もし `age` が 18 だったら、`age >= 20` という条件は偽 (False) になるため、`print` 文は実行されません。

2. `else`文:もし~でなければ…

`if` 文の条件が偽 (False) だった場合に実行したい処理があるときは、`else` 文を使います。`else` は `if` とセットで使われます。

構文:

if 条件式:
    # 条件式が真 (True) の場合の処理
    print("条件は真です!")
else:
    # 条件式が偽 (False) の場合の処理
    print("条件は偽です…")

`else:` の後にもコロン `:` とインデントが必要です。

例: 先ほどの年齢チェックに、成人でない場合のメッセージを追加しましょう。

age = 18

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

`age` が 18 なので、`if` の条件は偽となり、`else` ブロック内の `print` 文が実行され、「あなたは未成年です。」と表示されます。

3. `elif`文:さらに別の条件を追加したい!

条件分岐が2つだけ(真か偽か)では足りない場合もありますよね。「もしAならX、そうでなくもしBならY、それ以外ならZ」のように、複数の条件を順番にチェックしたい場合は `elif` 文(else if の略)を使います。

構文:

if 条件式1:
    # 条件式1が真の場合の処理
    print("条件1が真です。")
elif 条件式2:
    # 条件式1が偽で、条件式2が真の場合の処理
    print("条件2が真です。")
elif 条件式3:
    # 条件式1, 2が偽で、条件式3が真の場合の処理
    print("条件3が真です。")
# ... elif はいくつでも追加できます
else:
    # すべてのif, elifの条件が偽だった場合の処理
    print("すべての条件が偽でした。")

Pythonは上から順番に `if`, `elif` の条件をチェックしていき、最初に真になったブロックの処理だけを実行して、残りの `elif` や `else` は無視します。どの条件も真にならなかった場合に `else` の処理が実行されます。`else` は省略することも可能です。

例: 点数に応じて成績を表示してみましょう。

score = 75

if score >= 90:
    print("成績: 優")
elif score >= 70:
    print("成績: 良")
elif score >= 50:
    print("成績: 可")
else:
    print("成績: 不可")

`score` は 75 です。

  1. 最初の `if score >= 90:` は偽です。
  2. 次の `elif score >= 70:` は真です! なので、`print(“成績: 良”)` が実行されます。
  3. ここで条件分岐の処理は終了し、残りの `elif` や `else` はチェックされません。
結果として「成績: 良」が表示されます。🎉

4. 条件式で使う演算子たち

`if` 文などの条件式では、値を比較したり、複数の条件を組み合わせたりするためによく演算子が使われます。

比較演算子

2つの値を比較し、結果を真 (True) または偽 (False) で返します。

演算子意味例 (a=5, b=10 とする)結果
==等しいa == 5True
!=等しくないa != bTrue
<より小さいa < bTrue
>より大きいa > 5False
<=以下b <= 10True
>=以上a >= bFalse

論理演算子

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

演算子意味例 (x=True, y=False とする)結果
andかつ (両方がTrueならTrue)x and yFalse
orまたは (どちらか一方がTrueならTrue)x or yTrue
notではない (TrueならFalse, FalseならTrue)not yTrue

例: 年齢が10歳以上かつ30歳未満かチェック

age = 25

if age >= 10 and age < 30:
    print("あなたは10代または20代です。")
else:
    print("あなたは10代、20代ではありません。")

`in` 演算子

特定の要素がリストや文字列などに含まれているかチェックします。

my_list = [1, 2, 3, 4, 5]
my_string = "hello world"

if 3 in my_list:
    print("リストに3が含まれています。") # 実行される

if "hello" in my_string:
    print("文字列にhelloが含まれています。") # 実行される

if 10 not in my_list:
    print("リストに10は含まれていません。") # 実行される (`not in` も使える)

Pythonでは、`if`文の条件式は必ずしも `True` や `False` というブール値である必要はありません。様々なオブジェクトが「真偽値」として評価されます。これを “Truthiness” と呼びます。

一般的に、以下のものは偽 (False) として扱われます:

  • False (ブール値のFalse)
  • None (特別な値、何もないことを示す)
  • 数値のゼロ (0, 0.0, 0j など)
  • 空のシーケンス ("", [], (), {}, set() など)

これら以外のほとんどのオブジェクトは真 (True) として扱われます。

例:

my_list = []
if my_list:
    print("リストは空ではありません。")
else:
    print("リストは空です。") # こちらが実行される

name = "Alice"
if name:
    print(f"名前は {name} です。") # こちらが実行される
else:
    print("名前が設定されていません。")

count = 0
if count:
    print("カウントは0ではありません。")
else:
    print("カウントは0です。") # こちらが実行される

このように、値そのものを条件式として使うことで、コードを簡潔に書ける場合があります。例えば、リストが空かどうかをチェックするのに if len(my_list) > 0: と書く代わりに if my_list: と書けます。

まとめ

今回はPythonの条件分岐 `if`, `elif`, `else` について学びました。
  • `if`: 条件が真のときに処理を実行する。
  • `else`: `if` の条件が偽のときに処理を実行する。
  • `elif`: 複数の条件を順番にチェックする。
  • ✅ 比較演算子 (==, !=, <, >, <=, >=) や論理演算子 (and, or, not) を使って複雑な条件式を作れる。
  • ✅ `in` 演算子で要素の存在を確認できる。
  • ✅ 様々な値が真偽値として評価される (Truthiness)。
条件分岐はどんなプログラムにも欠かせない基本的な機能です。いろいろな条件を試して、その動きに慣れていきましょう!🚀

次は、同じ処理を何度も繰り返すための「繰り返し処理(for, while)」について学びます。お楽しみに!

コメント

タイトルとURLをコピーしました