【初心者向け】Pythonのif文が感覚でわかる条件分岐入門

    Pythonのif文の基本について学ぶ ハナマルコ アイキャッチ

    こんにちは、Python初心者のハナマルコです。
    チャッピー先生と二人三脚で、今日もPythonの冒険に出かけます。

    前回は、プログラミング人生初のコードとして「変数」を学び、自己紹介プログラムを完成させました。
    そして今日は、ついにプログラムが「考える」力を持つ瞬間
    そう、「条件分岐」=if文に初挑戦です.

    この記事の内容
    • 「ifって結局なに?」が、毎日の生活例でスッと理解できる
    • ありがちなミス(= と ==/インデント)を先回りで回避できる
    • 応用:三項演算子(1行if)と match-case が理解できる
    • ミニチャレンジで「自分で書けた!」を体験、FAQで疑問も解決
    読みたいところに飛べる目次

    日常の「もし〜なら」をコードにする

    「もし雨なら傘を持つ。晴れなら帽子をかぶる。」——この“条件の分岐”が if文 です。

    ハナマルコ

    今日は雨が降ったら長靴、降らなかったらスニーカーにしようかな。

    チャッピー先生

    その“もし雨なら…”が、まさに if 文です。Pythonで書くとこうなります。

    weather = "rain"
    
    if weather == "rain":
        print("長靴を履いて、傘を持って出かけよう!")
    else:
        print("スニーカーでOK!")

    実行結果:

    長靴を履いて、傘を持って出かけよう!

    まずは形を覚えちゃおう:if / elif / else の基本構文

    Pythonでは インデント(字下げ)とコロン(:) がとても大切。形を丸ごと覚えるのが近道です。

    if 条件式:
        # 条件が True(真)のときに実行する処理
    elif 別の条件式:
        # 最初の条件が False(偽)で、こちらが True のときに実行
    else:
        # どの条件にも当てはまらないときに実行

    例:テストの点数でメッセージを変えよう

    score = 78
    
    if score >= 80:
        print("合格!よく頑張りました")
    elif score >= 60:
        print("惜しい!あと少しで合格")
    else:
        print("残念…次は一緒に復習しよう")
    
    # 出力:惜しい!あと少しで合格

    実行結果:

    惜しい!あと少しで合格
    if文のelifとelseの処理を解説
    if文のelifとelseの処理を解説する

    条件式に使う“素材”を知ろう:比較演算子とブール値

    条件式の中では True(真) / False(偽) に評価される式を書きます。代表的なのが 比較演算子

    演算子読み方・意味結果
    ==等しい3 == 3True
    !=等しくない3 != 2True
    >より大きい5 > 2True
    <より小さい5 < 2False
    >=以上(大きいか等しい)7 >= 7True
    <=以下(小さいか等しい)4 <= 3False
    ハナマルコ

    あーなんとなく見たことあるかもって記号ですね。

    age = 20
    print(age >= 18) 

    実行結果:

    True

    このコードの意味は、20歳は18歳以上ですか?となりますので実行結果は正しい(True)になります。

    値の名前意味Pythonでの表記
    正しいTrue
    間違っているFalse
    • True:これは「はい」や「その通り」といった意味
    • False:これは「いいえ」や「ちがうよ」といった意味
    • = は「代入」=右側の値を左の変数に入れる
    • == は「比較」=左右が同じ値かどうかをチェック
      → よく混同されるので、if文の中は必ず == で比較しましょう。

    条件を組み合わせる:and / or / not

    単純な条件が増えてくると「しかも」「または」「〜ではない」という組み合わせが必要になります。そこで 論理演算子 の出番です。

    演算子読み方Trueになる条件
    andかつage >= 18 and country == "JP"どちらの条件もTrue
    orまたはscore >= 80 or coupon == Trueどちらか一方でもTrue
    notではないnot is_logged_in条件がFalseならTrue(True⇔False反転)
    age = 17
    country = "JP"
    
    if age >= 18 and country == "JP":
        print("成人で、日本在住ですね")
    else:
        print("条件に当てはまらないです")

    出力結果:

    条件に当てはまらないです

    ネスト(ifの中にif)はほどほどに:読みやすさが命

    処理が複雑になってくると、ついifの中にifを入れたくなります。が、深すぎる入れ子は読みづらい原因です。

    次のコードは、ユーザーのログイン状態と管理者権限の有無によって表示するメッセージを切り替える処理です。

    ①BEFORE:ネストが深い例(読みづらい)

    if logged_in:
        if is_admin:
            print("管理者ページへアクセス")
        else:
            print("一般ユーザーページへアクセス")
    else:
        print("ログインしてください")

    コードの解説:

    1. if logged_in:
      • ユーザーがログインしているかどうかを判定。
      • True(ログインしている)なら、次の条件へ進みます。
      • False(ログインしていない)なら、最後の else: に移ります。
    2. ネストされた if is_admin:
      • ログイン済みのユーザーが「管理者かどうか」を判定します。
      • True なら:「管理者ページへアクセス」と表示。
      • False なら:「一般ユーザーページへアクセス」と表示。
    3. 最終的な表示:
      • 未ログインなら:「ログインしてください」

    ②AFTER:論理演算子でフラット化(すっきり読みやすい)

    if not logged_in:
        print("ログインしてください")
    elif is_admin:
        print("管理者ページへアクセス")
    else:
        print("一般ユーザーページへアクセス")

    ネストを浅くして、可読性が高い書き方にしています。

    条件分岐が深いと読みづらくなる
    条件分岐が深いと読みづらくなる

    よくあるミスを先に知っておこう

    ミス1:=== の取り違え

    x = 10
    if x = 5:  # ← SyntaxError(代入しちゃってる)
        print("xは5です")

    → if文には必ず == を使う!

    x = 10
    if x == 5: 
        print("xは5です")

    ミス2:インデントがずれる

    if True:
    print("Hello")  # ← ここにインデントがないのでエラー

    → Pythonはインデントでブロックを判断します。スペース4つで統一しましょう。

    if True:
        print("Hello") 

    elif を使わず if を連続

    score = 85
    if score >= 90:
        print("A")
    if score >= 80:
        print("B")  # AもBも出る可能性あり

    →排他的な条件は elif に置き換えよう。

    score = 85
    if score >= 90:
        print("A")
    elif score >= 80:
        print("B") 
    else:
        print("C")

    【FAQ①】学習途中でよく出る疑問

    if文の中にif文を書いてもいいの?

    OKですが、深くすると読みにくい。論理演算子や関数を検討しましょう。

    if 条件: 処理 を1行で書いても大丈夫?

    実は書けますが、読みづらければ逆効果。短い処理以外は避けよう。

    True/Falseっていつ出てくるの?

    比較や論理演算子の結果として自然に出ます。自分で変数に入れて使ってもOK!

    文字列やリストが空かどうかを判定したい

    if not name: のように書けます。空文字 "" や空リスト [] は False と見なされます。

    ミニチャレンジ:ログイン判定プログラムを作ろう!

    チャッピー先生

    今まで学習したことを思い出して簡単なコードを書いてきましょう。

    ログイン判定プログラム

    • ユーザー名(username)とパスワード(password)を入力させる
    • 正しい組み合わせなら「ログイン成功」
    • どちらかが間違いなら「ユーザー名またはパスワードが違います」
    • 3回失敗したら「アカウントがロックされました」と表示

    ヒント:while か for のループと if を組み合わせます

    解答例
    CORRECT_USER = "hanamaruko"
    CORRECT_PASS = "python123"
    
    attempts = 0
    MAX_ATTEMPTS = 3
    
    while attempts < MAX_ATTEMPTS:
        username = input("ユーザー名: ")
        password = input("パスワード: ")
    
        if username == CORRECT_USER and password == CORRECT_PASS:
            print("ログイン成功!ようこそ、ハナマルコさん")
            break
        else:
            attempts += 1
            print("ユーザー名またはパスワードが違います。残りチャンス:", MAX_ATTEMPTS - attempts)
    
    else:
        # while が break されずに終わったときに実行
        print("アカウントがロックされました。サポートに連絡してください")

    【FAQ②】チャレンジ後の疑問に答えます

    while ループの else ってなに?

    ループがbreakされず正常終了したときだけ実行される“おまけ”ブロックです。

    入力が数字かどうかを判定したい!

    str.isdigit() で数字か確認、または try-exceptint() 変換を試みる方法があります。

    複雑な条件分岐が増えてきた…

    関数に分ける/辞書でマッピング/クラス化など、設計を見直すとスッキリします。

    応用:1行で書ける三項演算子(ワンライナーif)

    短い条件分岐なら1行にまとめることも可能。

    message = "合格" if score >= 60 else "不合格"
    print(message)
    チャッピー先生

    読みやすさを最優先。複雑な条件は普通のif文にしましょう。

    Python 3.10以降なら match-case も知っておこう

    status_code = 404
    
    match status_code:
        case 200:
            print("OK")
        case 301 | 302:
            print("Redirect")
        case 404:
            print("Not Found")
        case _:
            print("Unknown Status")

    まとめ

    • if文は「条件がTrueなら実行する」シンプルな仕組み。elifelseを組み合わせよう。
    • 比較演算子・論理演算子で、現実の複雑な条件をそのまま表現できる。
    • ミスの芽(=`と==、インデント)を最初から潰しておくと上達が早い!
    • 三項演算子やmatch-caseなどのテクニックも、必要に応じて覚えていこう。
    • とにかく 手を動かす のが最短コース。ミニチャレンジで実感できたはず。

    最後まで読んでいただき、ありがとうございました!

    実践シリーズ(初級編)で学習を続ける:
    Pythonって何?初心者にやさしく解説
    Pythonで割り勘と時間計算アプリ
    Pythonの変数とは?初心者向け入門
    Pythonのif文で条件分岐を学ぼう 今ココ
    Pythonのfor文とrangeの使い方を学ぶ

    Python初心者にオススメの入門書を正直レビューしました:
    【超正直レビュー】Python初心者が『Python1年生』読んでみた

    当ブログは基本的にリンクフリーです。リンクを行う場合の許可や連絡は不要です。

    Pythonのif文の基本について学ぶ ハナマルコ アイキャッチ

    この記事が気に入ったら
    いいね または フォローしてね!

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!
    読みたいところに飛べる目次