【初心者向け】Pythonのif文完全ガイド|条件分岐をマスターしよう

python

プログラムを作っていると、こんな場面に出会うことがあります:

  • 「テストの点数が80点以上なら『合格』と表示したい」
  • 「天気が雨なら『傘を持参』と表示したい」
  • 「年齢によって入場料を変えたい」

このような**「もし〜なら○○する」という条件による処理の切り替えを「条件分岐」と呼びます。

そして、Pythonでこの条件分岐を実現するのがif文です。

if文は、プログラミングにおいて最も基本的で重要な機能の一つです。

この記事では、Python初心者の方にもわかりやすく、if文の基本から実践的な使い方まで詳しく解説します。


スポンサーリンク

Pythonのif文の基本構文

if文の基本的な書き方

if文は、以下のような形で書きます:

if 条件式:
    実行したい処理

重要なポイント:

  • 条件式の後にコロン(:)を必ず付ける
  • 実行したい処理は**インデント(字下げ)**をする

簡単な例で理解しよう

数値が正の数かどうかを判定するプログラムを作ってみましょう:

x = 10
if x > 0:
    print("xは正の数です")

このプログラムの動作:

  1. x = 10で変数xに10を代入
  2. x > 0(xが0より大きいか)をチェック
  3. 条件が成り立つ(10は0より大きい)ので、print("xは正の数です")が実行される

実行結果:

xは正の数です

インデントについて

Pythonでは、インデント(字下げ)でコードのかたまりを表現します:

x = 5
if x > 0:
    print("これはif文の中です")        # インデントあり
    print("この行もif文の中です")      # インデントあり
print("これはif文の外です")            # インデントなし

インデントのルール:

  • 半角スペース4つが推奨
  • タブ文字は使わない
  • 同じレベルのコードは同じだけインデントする

if文では「コロン(:)」と「インデント」が絶対に必要です。


else・elifで条件分岐を広げよう

else文:条件に当てはまらない場合の処理

if文だけでは「条件が成り立つ場合」しか処理できません。「条件が成り立たない場合」の処理にはelseを使います:

x = -3
if x >= 0:
    print("正の数または0です")
else:
    print("負の数です")

実行結果:

負の数です

動作の流れ:

  1. x >= 0をチェック(-3は0以上ではないのでFalse)
  2. if文の処理はスキップされる
  3. else文の処理が実行される

elif文:複数の条件を順番に判定

3つ以上の条件に分岐したい場合はelif(else ifの略)を使います:

score = 85
if score >= 90:
    print("A評価:優秀です!")
elif score >= 80:
    print("B評価:良好です")
elif score >= 70:
    print("C評価:普通です")
elif score >= 60:
    print("D評価:もう少し頑張りましょう")
else:
    print("F評価:不合格です")

実行結果:

B評価:良好です

重要なポイント:

  • 条件は上から順番にチェックされます
  • 最初に成り立った条件の処理だけが実行されます
  • 他の条件は確認されません

より実用的な例

年齢に応じてメッセージを変える例:

age = int(input("年齢を入力してください: "))

if age < 0:
    print("正しい年齢を入力してください")
elif age < 13:
    print("子どもです")
elif age < 20:
    print("中高生です")
elif age < 65:
    print("大人です")
else:
    print("シニアです")

if → elif → elseの順番で条件を確認し、最初に一致した条件の処理だけが実行されます。


条件式の書き方と演算子

比較演算子の基本

条件式でよく使う比較演算子を覚えましょう:

演算子意味結果(x=10の場合)
==等しいx == 10True
!=等しくないx != 5True
>より大きいx > 5True
<より小さいx < 15True
>=以上x >= 10True
<=以下x <= 5False

注意: 等しいかどうかの比較は==(イコール2つ)を使います。=(イコール1つ)は代入に使うので混同しないでください。

論理演算子で条件を組み合わせる

複数の条件を組み合わせたい場合は論理演算子を使います:

演算子意味
andかつ(両方とも成り立つ)x > 5 and x < 15
orまたは(どちらか一方が成り立つ)x == 0 or y == 0
not〜ではない(条件を反転)not x > 10

実用例:

age = 25
income = 300

if age >= 18 and income >= 200:
    print("ローンの審査に通りました")
elif age >= 18 or income >= 500:
    print("追加書類が必要です")
else:
    print("申し込み条件を満たしていません")

in演算子:リストや文字列の中身をチェック

リストや文字列に特定の要素が含まれているかチェックできます:

fruits = ["りんご", "バナナ", "みかん"]
favorite = "りんご"

if favorite in fruits:
    print(f"{favorite}がリストにあります!")
else:
    print(f"{favorite}はリストにありません")

比較演算子と論理演算子を組み合わせることで、複雑な条件も柔軟に設定できます。


if文の使用例

例1:ユーザーの入力に応じた処理

name = input("あなたの名前を入力してください: ")

if name == "":
    print("名前が入力されていません")
elif name == "admin":
    print("管理者としてログインしました")
elif len(name) < 2:
    print("名前が短すぎます")
else:
    print(f"こんにちは、{name}さん!")

例2:数値の範囲チェック

temperature = float(input("今日の気温は何度ですか?: "))

if temperature >= 30:
    print("暑いです!水分補給を忘れずに")
elif temperature >= 25:
    print("暖かいですね")
elif temperature >= 15:
    print("過ごしやすい気温です")
elif temperature >= 5:
    print("少し寒いです")
else:
    print("とても寒いです!防寒対策をしっかりと")

例3:パスワードの強度チェック

password = input("パスワードを入力してください: ")

if len(password) < 8:
    print("パスワードは8文字以上にしてください")
elif password.isdigit():
    print("数字だけのパスワードは危険です")
elif password.islower():
    print("大文字も含めることをおすすめします")
else:
    print("良いパスワードです!")

例4:じゃんけんゲーム

import random

user_choice = input("じゃんけん!(グー/チョキ/パー): ")
computer_choice = random.choice(["グー", "チョキ", "パー"])

print(f"あなた: {user_choice}")
print(f"コンピューター: {computer_choice}")

if user_choice == computer_choice:
    print("あいこです!")
elif (user_choice == "グー" and computer_choice == "チョキ") or \
     (user_choice == "チョキ" and computer_choice == "パー") or \
     (user_choice == "パー" and computer_choice == "グー"):
    print("あなたの勝ちです!")
else:
    print("あなたの負けです...")

if文は、ユーザーの入力やデータの状態に応じて、プログラムの動作を柔軟に変更できる基本ツールです。


よくあるエラーと対策

エラー1:SyntaxError: expected ‘:’

間違った例:

x = 10
if x > 5          # コロンがない!
    print("大きい")

正しい書き方:

x = 10
if x > 5:         # コロンを忘れずに
    print("大きい")

エラー2:IndentationError

間違った例:

x = 10
if x > 5:
print("大きい")    # インデントがない!

正しい書き方:

x = 10
if x > 5:
    print("大きい")  # 半角スペース4つでインデント

エラー3:比較と代入を混同

間違った例:

x = 10
if x = 5:         # = は代入、== が比較
    print("等しい")

正しい書き方:

x = 10
if x == 5:        # == で比較
    print("等しい")

エラー4:文字列と数値の比較

問題のある例:

age = input("年齢: ")  # input()は文字列を返す
if age >= 18:          # 文字列と数値は比較できない
    print("成人です")

正しい書き方:

age = int(input("年齢: "))  # int()で数値に変換
if age >= 18:
    print("成人です")

確認しておくべきこと

if文で問題が起きたときは、以下をチェックしてください:

  1. コロン(:)を忘れていないか
  2. インデントは正しいか(半角スペース4つ)
  3. 比較演算子(==)と代入演算子(=)を間違えていないか
  4. データ型は適切か(文字列vs数値)

エラーメッセージをよく読み、「コロン」「インデント」「演算子」「データ型」を重点的にチェックしましょう。


より高度なテクニック

三項演算子(条件式)

簡単な条件分岐は一行で書くこともできます:

x = 10
result = "正の数" if x > 0 else "0以下"
print(result)  # 正の数

通常のif文と同じ意味:

x = 10
if x > 0:
    result = "正の数"
else:
    result = "0以下"
print(result)

ネストしたif文(if文の中にif文)

weather = "晴れ"
temperature = 25

if weather == "晴れ":
    if temperature >= 25:
        print("お出かけ日和です!")
    else:
        print("少し涼しいですが、晴れています")
else:
    print("天気が良くありません")

注意: ネストが深くなりすぎると読みにくくなるので、適度に使いましょう。


まとめ

Pythonのif文は、条件に応じてプログラムの動作を制御するための最も基本的で重要な機能です。

基本構文:

  • if 条件式:の形で条件分岐を作る
  • コロン(:)とインデントが必須

条件分岐の拡張:

  • elseで「条件に当てはまらない場合」を処理
  • elifで複数の条件を順番にチェック

条件式の作り方:

  • 比較演算子(==, !=, >, <など)
  • 論理演算子(and, or, not)で条件を組み合わせ

よくあるエラー:

  • コロンの忘れ、インデントのミス
  • 比較(==)と代入(=)の混同
  • データ型の不一致

コメント

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