Pythonの条件分岐:if文の基礎から応用まで
![]()
【Yuki】
ひろき君、こんにちは。今日はPythonプログラミングにおいて、とても大切な役割を持つ「条件分岐(if文)」について一緒に学んでいきましょう。
プログラムを書いていると、「もし〜だったら、この処理をする」という場面がたくさん出てきます。これを「条件分岐」と呼ぶのですが、プログラミングの「知能」を作るための第一歩とも言えるかもしれません...。
![]()
【Hiroki】
Yukiさん、こんにちは。条件分岐ですね。
「もし〜なら」という考え方は、日常生活でもよく使いますよね。例えば「もし雨が降っていたら傘を持っていく」みたいな感じでしょうか?
![]()
【Yuki】
はい、まさにその通りです。プログラムも同じで、状況に合わせて動きを変える必要があるんです。
Pythonでは、この仕組みを「if文」という構文を使って表現します。
少しずつ、丁寧に説明していきますね。
if文の基本的な書き方
![]()
【Yuki】
まずは、一番シンプルなif文の書き方を見てみましょう。
Pythonのif文は、次のように記述します。
weather = "rain"
if weather == "rain":
print("傘を持って出かけましょう。")
![]()
【Yuki】
ここで大切なポイントがいくつかあります。
まず、if の後に条件を書き、その最後にコロン(:)を忘れないようにしてください。
そして、次の行からは「インデント(字下げ)」をする必要があります。Pythonでは通常、スペース4つ分のインデントを入れます。これが、if文の中に含まれる処理であることを示す印になるんです。
![]()
【Hiroki】
なるほど。コロンとインデントがセットなんですね。
もしインデントを忘れてしまったらどうなるんですか?
![]()
【Yuki】
ふふ、鋭いですね。もしインデントを忘れてしまうと、Pythonは「どこまでがif文の処理かわからないよ」と困ってしまって、IndentationErrorというエラーを出して止まってしまいます。
私は、コードの見た目が美しく整っていることがとても大切だと思っているので...このインデントのルールは、最初は少し大変かもしれませんが、慣れるとコードがとても読みやすくなりますよ。
![]()
【Hiroki】
美しさは大切ですね。スペース4つ、忘れないようにします。
ところで、条件のところにある == というのは何ですか?
![]()
【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】
数学で習う不等号に似ているので、覚えやすそうです。
!= というのは、あまり見慣れない記号ですね。
![]()
【Yuki】
そうですね。これは「ノットイコール」と読んで、等しくないことを表します。
例えば、私の好きな冬の季節について考えてみましょう。
「もし気温が15度より低かったら」という条件を書くときは、こんな風になります。
temperature = 10
if temperature < 15:
print("空気が澄んでいて、静かな冬の日は素敵だと思います...")
![]()
【Yuki】
私は熱いのが少し苦手なので、こういう冷んやりとした条件のプログラムを見ると、少し落ち着いた気持ちになれるかもしれません。
![]()
【Hiroki】
確かに、冬の静かな感じはいいですよね。
でも、このプログラムだと、15度以上のときは何も起きないんですか?
![]()
【Yuki】
その通りです。今の書き方だと、条件が当てはまらない(偽:Falseといいます)ときは、何もせずに次の処理へ進んでしまいます。
そこで、次は「そうでなかったら」という処理を追加する方法を見ていきましょう。
else文:条件が満たされない場合の処理
![]()
【Yuki】
「もし〜ならAをする。そうでなければBをする」という風に分けたいときは、elseを使います。
score = 75
if score >= 80:
print("合格です!おめでとうございます。")
else:
print("もう少し頑張りましょう。")
![]()
【Hiroki】
なるほど。else を使うことで、条件に合わなかった時のフォローもできるんですね。
else の後にもコロンが必要なんですね。
![]()
【Yuki】
はい、よく気づきましたね。else: の後も同じように、インデントを入れて処理を書きます。
これで、必ずどちらかのメッセージが表示されるようになります。
でも、もっと細かく条件を分けたい時もありますよね?例えば、「80点以上なら合格、60点以上なら惜しい、それ以外は不合格」みたいに...。
![]()
【Hiroki】
あ、それ知りたかったです!
elif文:複数の条件を組み合わせる
![]()
【Yuki】
そんな時に使うのが elif です。
他の言語では else if と書くこともありますが、Pythonでは短く elif と書くんです。
score = 65
if score >= 80:
print("大変優秀です。")
elif score >= 60:
print("合格です。")
else:
print("残念ですが、不合格です。")
![]()
【Yuki】
このように、上から順番に条件を判定していって、最初に当てはまったブロックの処理だけが実行されます。
どこにも当てはまらなかった場合、最後に else があればその処理が実行されるという仕組みです。
![]()
【Hiroki】
上から順番なんですね。
もし、elif をたくさん並べることもできるんですか?
![]()
【Yuki】
はい、可能です。いくつでも増やすことができますよ。
ただし、あまりにも多すぎると、後で読み返した時に少し複雑に感じてしまうかもしれないので、注意が必要かもしれません...。
論理演算子:より複雑な条件を作る
![]()
【Yuki】
さらに一歩進んで、「かつ」や「または」といった複雑な条件を作ってみましょう。
これには「論理演算子」を使います。
and(かつ): 両方の条件が正しい時にTrueor(または): どちらか片方の条件が正しい時にTruenot(〜ではない): 条件の結果を反転させる
![]()
【Hiroki】
具体的にはどう使うんでしょうか?
![]()
【Yuki】
例えば、「気温が20度以上、かつ、湿度が60%以下なら快適」というプログラムを作ってみますね。
temp = 22
humidity = 50
if temp >= 20 and humidity <= 60:
print("とても快適な環境ですね。")
![]()
【Yuki】
このように and で繋ぐことで、複数の条件を同時にチェックできます。
ひろき君、もし「土曜日、または、日曜日なら休み」という条件を作るとしたら、どう書けばいいか分かりますか?
![]()
【Hiroki】
ええと、こんな感じでしょうか?
day = "土曜日"
if day == "土曜日" or day == "日曜日":
print("今日はお休みの日ですね。")
![]()
【Yuki】
正解です!素晴らしいですね。
プログラミングの基礎がしっかり身についてきているようで、私も少し嬉しいです。
ネスト(入れ子)構造のif文
![]()
【Yuki】
条件の中に、さらに条件を入れることもできます。
これを「ネスト(入れ子)」と呼びます。
is_student = True
age = 16
if is_student:
if age < 18:
print("学生割引(未成年)が適用されます。")
else:
print("学生割引(一般)が適用されます。")
else:
print("通常料金です。")
![]()
【Hiroki】
インデントがさらに深くなっていますね。
右にどんどんずれていくのが、少し不思議な感じです。
![]()
【Yuki】
そうですね。あまり深くしすぎると、画面の右端の方に行ってしまって読みづらくなるので、私は2段階か3段階くらいまでにするのが、見た目的にも美しいかな、と思っています。
フォントの幅にもよりますが、コードは常に「読み手」のことを考えて書くのが大切かもしれません。
![]()
【Hiroki】
読み手のことを考える...。
Yukiさんのコードが読みやすいのは、そういう心掛けがあるからなんですね。
真偽値(Boolean)について
![]()
【Yuki】
ここで少しだけ、裏側の話をしてもいいでしょうか...。
if文が判定に使っているのは、実は True(真) か False(偽) という2つの値だけなんです。これを「真偽値(ブール型)」と呼びます。
例えば、score >= 80 という比較は、その瞬間に True か False というデータに置き換わっているんです。
result = (10 > 5)
print(result) # True と表示されます
![]()
【Hiroki】
へぇ!if文は、最終的にその True か False を見て、どっちに進むか決めているんですね。
![]()
【Yuki】
はい。ですから、変数の中に最初から True や False を入れておいて、それをそのままif文に使うこともできるんですよ。先ほどの if is_student: という書き方がそうでしたね。
Pythonのif文で気をつけるべきこと
![]()
【Yuki】
最後に、初心者が間違いやすいポイントをいくつかお話ししておきますね。
まず、等しいかどうかを判定するときは = ではなく == を使うこと。
= は「代入(右の値を左に入れること)」になってしまうので、注意が必要です。
![]()
【Hiroki】
あ、それはうっかり間違えてしまいそうです。
![]()
【Yuki】
それから、Pythonでは「空の文字列」や「数値の0」も、if文では False と同じように扱われるという特徴があります。
name = ""
if not name:
print("名前が入力されていません。")
![]()
【Yuki】
このように、「もし中身が空っぽだったら」というのをスマートに書くこともできるんです。
こういうちょっとした工夫を知ると、プログラミングがどんどんパズルのように楽しくなってくると思いませんか?
![]()
【Hiroki】
確かに、少ない行数で賢いことができている感じがして、ワクワクします!
![]()
【Yuki】
その気持ち、大切にしてくださいね。
誰かの役に立つために作られた、小さなツールたち...。その中にも、こうしたif文による丁寧な条件分岐がたくさん詰まっているんです。
まるで見えないところで誰かを支える、思いやりの塊のようだと私は思います。
![]()
【Hiroki】
Yukiさんに教わると、プログラムがただの命令じゃなくて、もっと優しいものに見えてきます。
今日はif文の基本がよく分かりました。ありがとうございます!
![]()
【Yuki】
そう言ってもらえると、少し恥ずかしいですが...とても嬉しいです。
if文をマスターすれば、次は繰り返し処理(ループ)などに進むことができます。
自分のペースで大丈夫ですので、また一緒に学んでいきましょう。
何か分からないことがあれば、いつでも聞いてくださいね。
![]()
【Hiroki】
はい!またよろしくお願いします!
参考資料
![]()
【Yuki】
もしもっと詳しく知りたくなったら、Pythonの公式ドキュメントを見てみるのもいいかもしれません。少し難しい言葉も多いですが、一番確かな情報源ですから...。
Python 公式ドキュメント:制御構造(if文) Python 比較演算子について
「if文」のサンプルコードを見る
この記事では基礎を解説しましたが、実務においては「もっと複雑なデータを扱いたい」「独自のシステムに組み込みたい」といった、個別の課題に直面することも多いはずです。
「自分で書く時間は最小限に抑え、プロの品質でツールを完成させたい」という方は、ぜひ一度ご相談ください。
- 専門家の知見に基づいた、保守性の高いコード設計
- AIの専門家による、Gemini API等の最新AIを組み合わせた高度な自動化
- ChatGPT等が生成したコードのデバッグ・最適化
「教わる」だけでなく「形にする」パートナーとして、フリーランスエンジニアのmei_13が最短ルートでの解決をサポートします。


