条件分岐の基本:if文の使い方#

はじめに#

前回までの記事では、真偽値、比較演算子、論理演算子について学びました。これらの知識を使って、いよいよプログラムの「判断力」を実装する方法を学びましょう。この記事では、条件に応じて処理を分岐させるための「if文」について説明します。

条件分岐は、プログラムが状況に合わせて異なる処理を行うために欠かせない機能です。例えば、「18歳以上ならメッセージを表示する」「残高が足りていれば商品を購入する」といった判断をプログラムで表現できるようになります。

if文の基本構造#

Pythonのif文は、次のような構造になっています。

if 条件:
    条件が真の場合に実行する文
    もう一つの文

ここで重要なポイントが3つあります。

  1. ifキーワードの後に「条件」(真偽値を返す式)を書く
  2. 条件の後にコロン(:)を忘れずに付ける
  3. 条件が真の場合に実行する文は、インデント(行頭の空白)を使って字下げする

Google Colabで実際に動かして確認してみましょう。

>
# 基本的なif文
weather = "雨"

if weather == "雨":
    print("傘を持っていきましょう。")
    print("長靴も良いでしょう。")
傘を持っていきましょう。
長靴も良いでしょう。

この例では、weather変数が"雨"と等しい場合にのみ、傘と長靴に関するメッセージが表示されます。

インデントの重要性#

Pythonでは、インデント(字下げ)がとても重要です。他の多くのプログラミング言語では、波括弧{}などでコードブロックを表しますが、Pythonではインデントでコードのグループ化を表現します。

インデントには通常、半角スペース4つを使用します(全角スペースはNGです)。以下の例で、インデントの重要性を確認してみましょう。

>
# インデントの重要性
age = 20

if age >= 18:
    print("成人です。")
    print("投票権があります。")
print("この文はインデントがないので、条件に関係なく実行されます。")
成人です。
投票権があります。
この文はインデントがないので、条件に関係なく実行されます。

もしageが18未満だったらどうなるでしょう。

>
# 条件が偽の場合
age = 16

if age >= 18:
    print("成人です。")
    print("投票権があります。")
print("この文はインデントがないので、条件に関係なく実行されます。")
この文はインデントがないので、条件に関係なく実行されます。

18未満の場合、if文のブロック内の処理はすべてスキップされることがわかります。

条件式のバリエーション#

if文の条件部分には、さまざまな式を使用できます。前回までに学んだ比較演算子や論理演算子を活用しましょう。

>
# さまざまな条件式
number = 7
name = "太郎"
is_registered = True
is_raining = False

# 数値の比較
if number > 5:
    print(f"{number}は5より大きいです。")

# 文字列の一致確認
if name == "太郎":
    print(f"こんにちは、{name}さん!")

# 真偽値を直接使用
if is_registered:
    print("登録済みユーザーです。")

# 複合条件
if number > 5 and name == "太郎":
    print("数値が5より大きく、名前が太郎です。")

# 否定条件
if not is_raining:
    print("傘は必要ありません。")
7は5より大きいです。
こんにちは、太郎さん!
登録済みユーザーです。
数値が5より大きく、名前が太郎です。
傘は必要ありません。

Truthyな値とFalsyな値の利用#

以前の記事で学んだように、Pythonではブール型以外の値も条件式で使用でき、それらは「Truthy」または「Falsy」として評価されます。これを利用して、if文をより簡潔に書くことができます。

>
# TruthyとFalsyの値を条件として使用
name = "太郎"
age = 20
items = []
message = ""

# 空でない文字列はTruthy
if name:
    print(f"名前が設定されています: {name}")

# ゼロ以外の数値はTruthy
if age:
    print(f"年齢が設定されています: {age}")

# 空のリストはFalsy
if not items:
    print("アイテムリストは空です。")

# 空の文字列はFalsy
if not message:
    print("メッセージは設定されていません。")
名前が設定されています: 太郎
年齢が設定されています: 20
アイテムリストは空です。
メッセージは設定されていません。

これは、「値が存在するかどうか」「リストに要素が含まれているかどうか」といった判断をシンプルに書ける便利な機能です。

if文の実用例#

より実用的な例を見てみましょう。

>
# 成人かどうかの確認
age = int(input("あなたの年齢を入力してください: "))

if age >= 20:
    print("酒類を購入できます。")

# 偶数か奇数かの判定
number = int(input("数値を入力してください: "))

if number % 2 == 0:
    print(f"{number}は偶数です。")

# パスワードの長さ確認
password = input("パスワードを設定してください: ")

if len(password) < 8:
    print("警告: パスワードは8文字以上にすることをお勧めします。")

実行結果は入力によって変わりますが、例えば以下のような出力になります。

あなたの年齢を入力してください: 25
酒類を購入できます。
数値を入力してください: 7
パスワードを設定してください: abc123
警告: パスワードは8文字以上にすることをお勧めします。

まとめ#

この記事では、if文を使った条件分岐の基本について学びました。

  • if文の基本構造と書き方
  • インデントの重要性
  • さまざまな条件式の使い方
  • TruthyとFalsyの値の活用

if文は、プログラムに「判断力」を与える重要な構文です。次回の記事では、「else文」と「elif文」を使って、より複雑な条件分岐を実装する方法について学びます。これにより、「もし〜ならAを行い、そうでなければBを行う」といったより高度な判断ロジックをプログラムに組み込むことができるようになります。