mei_13のPython講座 ロゴ

【解説】Pythonの条件分岐:if文の基礎から応用まで




Pythonの条件分岐:if文の基礎から応用まで


Yukiのアイコン
【Yuki】 ひろき君、こんにちは。今日はPythonプログラミングにおいて、とても大切な役割を持つ「条件分岐(if文)」について一緒に学んでいきましょう。 プログラムを書いていると、「もし〜だったら、この処理をする」という場面がたくさん出てきます。これを「条件分岐」と呼ぶのですが、プログラミングの「知能」を作るための第一歩とも言えるかもしれません...。


Hirokiのアイコン
【Hiroki】 Yukiさん、こんにちは。条件分岐ですね。 「もし〜なら」という考え方は、日常生活でもよく使いますよね。例えば「もし雨が降っていたら傘を持っていく」みたいな感じでしょうか?


Yukiのアイコン
【Yuki】 はい、まさにその通りです。プログラムも同じで、状況に合わせて動きを変える必要があるんです。 Pythonでは、この仕組みを「if文」という構文を使って表現します。 少しずつ、丁寧に説明していきますね。

if文の基本的な書き方


Yukiのアイコン
【Yuki】 まずは、一番シンプルなif文の書き方を見てみましょう。 Pythonのif文は、次のように記述します。

weather = "rain"

if weather == "rain":
    print("傘を持って出かけましょう。")


Yukiのアイコン
【Yuki】 ここで大切なポイントがいくつかあります。 まず、if の後に条件を書き、その最後にコロン(:を忘れないようにしてください。 そして、次の行からは「インデント(字下げ)」をする必要があります。Pythonでは通常、スペース4つ分のインデントを入れます。これが、if文の中に含まれる処理であることを示す印になるんです。


Hirokiのアイコン
【Hiroki】 なるほど。コロンとインデントがセットなんですね。 もしインデントを忘れてしまったらどうなるんですか?


Yukiのアイコン
【Yuki】 ふふ、鋭いですね。もしインデントを忘れてしまうと、Pythonは「どこまでがif文の処理かわからないよ」と困ってしまって、IndentationErrorというエラーを出して止まってしまいます。 私は、コードの見た目が美しく整っていることがとても大切だと思っているので...このインデントのルールは、最初は少し大変かもしれませんが、慣れるとコードがとても読みやすくなりますよ。


Hirokiのアイコン
【Hiroki】 美しさは大切ですね。スペース4つ、忘れないようにします。 ところで、条件のところにある == というのは何ですか?


Yukiのアイコン
【Yuki】 それは「比較演算子」と呼ばれる記号の一つです。 数学の「=」とは少し違って、プログラミングでは「左側と右側が等しいかどうか」を確認するために使われます。

比較演算子の種類


Yukiのアイコン
【Yuki】 if文でよく使われる比較演算子を、いくつか表にまとめてみました。 これらを組み合わせることで、様々な条件を作ることができるようになります。

  • a == b : aとbが等しい
  • a != b : aとbが等しくない
  • a > b : aがbより大きい
  • a < b : aがbより小さい
  • a >= b : aがb以上である
  • a <= b : aがb以下である


Hirokiのアイコン
【Hiroki】 数学で習う不等号に似ているので、覚えやすそうです。 != というのは、あまり見慣れない記号ですね。


Yukiのアイコン
【Yuki】 そうですね。これは「ノットイコール」と読んで、等しくないことを表します。 例えば、私の好きな冬の季節について考えてみましょう。 「もし気温が15度より低かったら」という条件を書くときは、こんな風になります。

temperature = 10

if temperature < 15:
    print("空気が澄んでいて、静かな冬の日は素敵だと思います...")


Yukiのアイコン
【Yuki】 私は熱いのが少し苦手なので、こういう冷んやりとした条件のプログラムを見ると、少し落ち着いた気持ちになれるかもしれません。


Hirokiのアイコン
【Hiroki】 確かに、冬の静かな感じはいいですよね。 でも、このプログラムだと、15度以上のときは何も起きないんですか?


Yukiのアイコン
【Yuki】 その通りです。今の書き方だと、条件が当てはまらない(偽:Falseといいます)ときは、何もせずに次の処理へ進んでしまいます。 そこで、次は「そうでなかったら」という処理を追加する方法を見ていきましょう。

else文:条件が満たされない場合の処理


Yukiのアイコン
【Yuki】 「もし〜ならAをする。そうでなければBをする」という風に分けたいときは、elseを使います。

score = 75

if score >= 80:
    print("合格です!おめでとうございます。")
else:
    print("もう少し頑張りましょう。")


Hirokiのアイコン
【Hiroki】 なるほど。else を使うことで、条件に合わなかった時のフォローもできるんですね。 else の後にもコロンが必要なんですね。


Yukiのアイコン
【Yuki】 はい、よく気づきましたね。else: の後も同じように、インデントを入れて処理を書きます。 これで、必ずどちらかのメッセージが表示されるようになります。 でも、もっと細かく条件を分けたい時もありますよね?例えば、「80点以上なら合格、60点以上なら惜しい、それ以外は不合格」みたいに...。


Hirokiのアイコン
【Hiroki】 あ、それ知りたかったです!

elif文:複数の条件を組み合わせる


Yukiのアイコン
【Yuki】 そんな時に使うのが elif です。 他の言語では else if と書くこともありますが、Pythonでは短く elif と書くんです。

score = 65

if score >= 80:
    print("大変優秀です。")
elif score >= 60:
    print("合格です。")
else:
    print("残念ですが、不合格です。")


Yukiのアイコン
【Yuki】 このように、上から順番に条件を判定していって、最初に当てはまったブロックの処理だけが実行されます。 どこにも当てはまらなかった場合、最後に else があればその処理が実行されるという仕組みです。


Hirokiのアイコン
【Hiroki】 上から順番なんですね。 もし、elif をたくさん並べることもできるんですか?


Yukiのアイコン
【Yuki】 はい、可能です。いくつでも増やすことができますよ。 ただし、あまりにも多すぎると、後で読み返した時に少し複雑に感じてしまうかもしれないので、注意が必要かもしれません...。

論理演算子:より複雑な条件を作る


Yukiのアイコン
【Yuki】 さらに一歩進んで、「かつ」や「または」といった複雑な条件を作ってみましょう。 これには「論理演算子」を使います。

  1. and (かつ): 両方の条件が正しい時にTrue
  2. or (または): どちらか片方の条件が正しい時にTrue
  3. not (〜ではない): 条件の結果を反転させる


Hirokiのアイコン
【Hiroki】 具体的にはどう使うんでしょうか?


Yukiのアイコン
【Yuki】 例えば、「気温が20度以上、かつ、湿度が60%以下なら快適」というプログラムを作ってみますね。

temp = 22
humidity = 50

if temp >= 20 and humidity <= 60:
    print("とても快適な環境ですね。")


Yukiのアイコン
【Yuki】 このように and で繋ぐことで、複数の条件を同時にチェックできます。 ひろき君、もし「土曜日、または、日曜日なら休み」という条件を作るとしたら、どう書けばいいか分かりますか?


Hirokiのアイコン
【Hiroki】 ええと、こんな感じでしょうか?

day = "土曜日"

if day == "土曜日" or day == "日曜日":
    print("今日はお休みの日ですね。")


Yukiのアイコン
【Yuki】 正解です!素晴らしいですね。 プログラミングの基礎がしっかり身についてきているようで、私も少し嬉しいです。

ネスト(入れ子)構造のif文


Yukiのアイコン
【Yuki】 条件の中に、さらに条件を入れることもできます。 これを「ネスト(入れ子)」と呼びます。

is_student = True
age = 16

if is_student:
    if age < 18:
        print("学生割引(未成年)が適用されます。")
    else:
        print("学生割引(一般)が適用されます。")
else:
    print("通常料金です。")


Hirokiのアイコン
【Hiroki】 インデントがさらに深くなっていますね。 右にどんどんずれていくのが、少し不思議な感じです。


Yukiのアイコン
【Yuki】 そうですね。あまり深くしすぎると、画面の右端の方に行ってしまって読みづらくなるので、私は2段階か3段階くらいまでにするのが、見た目的にも美しいかな、と思っています。 フォントの幅にもよりますが、コードは常に「読み手」のことを考えて書くのが大切かもしれません。


Hirokiのアイコン
【Hiroki】 読み手のことを考える...。 Yukiさんのコードが読みやすいのは、そういう心掛けがあるからなんですね。

真偽値(Boolean)について


Yukiのアイコン
【Yuki】 ここで少しだけ、裏側の話をしてもいいでしょうか...。 if文が判定に使っているのは、実は True(真)False(偽) という2つの値だけなんです。これを「真偽値(ブール型)」と呼びます。

例えば、score >= 80 という比較は、その瞬間に TrueFalse というデータに置き換わっているんです。

result = (10 > 5)
print(result)  # True と表示されます


Hirokiのアイコン
【Hiroki】 へぇ!if文は、最終的にその TrueFalse を見て、どっちに進むか決めているんですね。


Yukiのアイコン
【Yuki】 はい。ですから、変数の中に最初から TrueFalse を入れておいて、それをそのままif文に使うこともできるんですよ。先ほどの if is_student: という書き方がそうでしたね。

Pythonのif文で気をつけるべきこと


Yukiのアイコン
【Yuki】 最後に、初心者が間違いやすいポイントをいくつかお話ししておきますね。 まず、等しいかどうかを判定するときは = ではなく == を使うこと。 = は「代入(右の値を左に入れること)」になってしまうので、注意が必要です。


Hirokiのアイコン
【Hiroki】 あ、それはうっかり間違えてしまいそうです。


Yukiのアイコン
【Yuki】 それから、Pythonでは「空の文字列」や「数値の0」も、if文では False と同じように扱われるという特徴があります。

name = ""

if not name:
    print("名前が入力されていません。")


Yukiのアイコン
【Yuki】 このように、「もし中身が空っぽだったら」というのをスマートに書くこともできるんです。 こういうちょっとした工夫を知ると、プログラミングがどんどんパズルのように楽しくなってくると思いませんか?


Hirokiのアイコン
【Hiroki】 確かに、少ない行数で賢いことができている感じがして、ワクワクします!


Yukiのアイコン
【Yuki】 その気持ち、大切にしてくださいね。 誰かの役に立つために作られた、小さなツールたち...。その中にも、こうしたif文による丁寧な条件分岐がたくさん詰まっているんです。 まるで見えないところで誰かを支える、思いやりの塊のようだと私は思います。


Hirokiのアイコン
【Hiroki】 Yukiさんに教わると、プログラムがただの命令じゃなくて、もっと優しいものに見えてきます。 今日はif文の基本がよく分かりました。ありがとうございます!


Yukiのアイコン
【Yuki】 そう言ってもらえると、少し恥ずかしいですが...とても嬉しいです。 if文をマスターすれば、次は繰り返し処理(ループ)などに進むことができます。 自分のペースで大丈夫ですので、また一緒に学んでいきましょう。 何か分からないことがあれば、いつでも聞いてくださいね。


Hirokiのアイコン
【Hiroki】 はい!またよろしくお願いします!

参考資料


Yukiのアイコン
【Yuki】 もしもっと詳しく知りたくなったら、Pythonの公式ドキュメントを見てみるのもいいかもしれません。少し難しい言葉も多いですが、一番確かな情報源ですから...。

Python 公式ドキュメント:制御構造(if文) Python 比較演算子について



「if文」のサンプルコードを見る

< ソケット通信
コラム一覧に戻る
for文 >

この記事では基礎を解説しましたが、実務においては「もっと複雑なデータを扱いたい」「独自のシステムに組み込みたい」といった、個別の課題に直面することも多いはずです。

「自分で書く時間は最小限に抑え、プロの品質でツールを完成させたい」という方は、ぜひ一度ご相談ください。

  • 専門家の知見に基づいた、保守性の高いコード設計
  • AIの専門家による、Gemini API等の最新AIを組み合わせた高度な自動化
  • ChatGPT等が生成したコードのデバッグ・最適化

「教わる」だけでなく「形にする」パートナーとして、フリーランスエンジニアのmei_13が最短ルートでの解決をサポートします。

➡ ココナラで制作・相談を依頼する(見積もり無料)


初心者から始められるPythonレッスン

プログラミング未経験者・初心者歓迎!
月額4,000円で質問し放題!!
● 完全オンライン
● 翌日までには必ず返信
● 挫折しない独自の学習メソッド
● 圧倒的高評価!!
テキストベースで時間を選ばない
● 高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!



AIアシスタント Yuki