Pythonのif文の基本!条件分岐の書き方とelifの使い方
生徒
「Pythonで、条件によって処理を変えたいときはどうすればいいんですか?」
先生
「それにはif文という条件分岐の仕組みを使います。Pythonではとてもシンプルに書けますよ。」
生徒
「あと、elifっていうのも見たことがあります。ifと何が違うんですか?」
先生
「その違いも含めて、if文の基本から順番にやさしく解説していきましょう。」
1. Pythonのif文とは?条件に応じて処理を分ける
if文(いふぶん)とは、「もし〜なら〜する」というように、条件に応じてプログラムの動きを分ける方法です。これを条件分岐といいます。
たとえば「年齢が20歳以上なら入場OK、そうでなければNG」といった判断ができます。現実の「合格・不合格」「ログインOK・NG」などの判定にも同じ考え方が使われます。
まずは、条件が当てはまったときだけ処理が動く、いちばん基本の形を見てみましょう。
age = 18
if age >= 20:
print("入場できます")
(何も表示されない)
解説:ifの後ろには「条件」を書きます。この例の条件はage >= 20(ageが20以上)です。条件が正しいときはTrueになり、字下げ(インデント)された行が実行されます。逆に、条件が正しくないときはFalseになり、ifの中の処理はスキップされます。
今回はageが18なので条件を満たさず、printが実行されないため何も表示されません。
2. elseを使って「そうでないとき」の処理を書く
ifの条件に当てはまらなかった場合に、別の処理をしたいときはelseを使います。
elseは「そうでなければ」という意味で、ifがFalseだったときにだけ実行されます。つまり、必ずどちらか一方(if側かelse側)だけが動くので、結果がわかりやすくなります。
age = 18
if age >= 20:
print("入場できます")
else:
print("未成年のため入場できません")
未成年のため入場できません
解説:この例ではageが18なので、age >= 20はFalseになります。そのため、ifの中のprint("入場できます")は実行されず、代わりにelseの中が実行されて「未成年のため入場できません」と表示されます。
「条件に合うときはA、合わないときはB」と2択で処理を分けたい場面(合格/不合格、ログイン成功/失敗など)で、elseはよく使われます。
3. elifで条件をさらに追加する
elifは「else if」の略で、「もしこれなら…それでもなければ…」と条件を追加して分岐できる書き方です。ifだけだと2択になりがちですが、elifを使うと「Aならこう、Bならこう、それ以外は…」という形にできます。
ポイントは、上から順番にチェックして、最初に当てはまった1つだけが実行されることです。つまり、途中で条件に当てはまったら、その下のelifはもう見に行きません。
age = 17
if age >= 65:
print("シニア料金です")
elif age >= 20:
print("通常料金です")
else:
print("学生料金です")
学生料金です
解説:この例では、まずage >= 65を確認しますが17なのでFalseです。次にage >= 20もFalseになります。最後まで当てはまらなかったため、elseが実行されて「学生料金です」と表示されます。
このように、elifは「条件がいくつかあるときに順番に判定したい」場面(年齢区分、点数評価、入力内容のチェックなど)でよく使われます。
4. インデント(字下げ)がとても重要!
Pythonでは、インデント(行の先頭をスペースで下げること)が文法の一部です。
if文やelse文のあとには「:」(コロン)を書き、その次の行は必ず字下げして書きます。
インデントがないとエラーになります。
x = 10
if x > 5:
print("5より大きい")
print("条件とは関係ない行")
5より大きい
条件とは関係ない行
print("5より大きい")はifの条件に従いますが、その下のprint("条件とは関係ない行")は常に実行されます。
5. 複数の条件を同時にチェックする(and / or)
if文では、and(かつ)やor(または)を使って、複数の条件を組み合わせることもできます。
age = 22
student = True
if age < 25 and student:
print("学割が使えます")
学割が使えます
andは両方が当てはまるとき、orはどちらかが当てはまればOKです。
6. 数値以外でも使えるif文の例
if文は数字だけでなく、文字列やブール値(TrueかFalse)にも使えます。
answer = input("Pythonは好きですか? (yes/no):")
if answer == "yes":
print("ありがとうございます!")
else:
print("これから好きになってくれると嬉しいです")
Pythonは好きですか? (yes/no):yes
ありがとうございます!
7. if文のネスト(入れ子)にも注意
if文の中にさらにif文を書くこともできます。これをネスト(入れ子)といいます。
age = 25
gender = "male"
if age >= 20:
if gender == "male":
print("成人男性です")
成人男性です
ネストが深くなると見にくくなるので、必要なときだけ使うのがポイントです。
まとめ
Pythonのif文は、条件によって処理を分岐させるための最も基本でありながら重要な文法です。「もし〜なら〜する」といった形で処理の流れを制御できるため、実際のプログラムでも頻繁に使われます。たとえば、年齢や入力内容によって出力を変える、ログインの成否を判定する、複数の選択肢の中から適切な処理を選ぶなど、実生活に近い場面をコードで表現する際に大活躍します。
今回の記事では、if文の基本から始まり、elseを使った「そうでなければ」の書き方、elifによる複数条件の分岐、さらにはandやorで条件を組み合わせる方法まで、丁寧に段階を追って紹介しました。特にif文はインデント(字下げ)が文法の一部になっているため、見た目だけでなく動作にも直接影響します。スペースを入れ忘れたり、インデントがズレていたりするとエラーになることも多いので、習慣的に正しい書き方を身につけておくと安心です。
また、Pythonでは数値だけでなく、文字列やTrue/False(ブール値)を条件に使うこともできます。これにより、ユーザーの入力に応じて動作を変えるインタラクティブなプログラムも作れるようになります。さらに、if文の中に別のif文を入れる「ネスト(入れ子)」も理解しておけば、より複雑な条件判定も書けるようになり、実用的なコードが書ける力がついていきます。
最後に、Pythonのif文はシンプルで直感的に書ける反面、条件の設計ミスやインデント忘れによるエラーが起こりやすいため、最初のうちはゆっくり丁寧にコードを書くことが大切です。以下に、この記事で学んだ知識を総復習するような簡単なサンプルを紹介しておきます。
おさらいサンプル:年齢と会員種別でメッセージを出し分け
age = 30
member = "premium"
if age < 18:
print("未成年のため制限があります")
elif member == "premium":
print("プレミアム会員向けサービスを表示します")
else:
print("一般会員向けの内容を表示します")
このように、複数の条件を組み合わせて使えば、実際のサービスや画面遷移にも応用できます。簡単な条件式から始めて、少しずつ複雑なロジックも自分で書けるようになると、Pythonプログラミングが一段と楽しく感じられるでしょう。
生徒
「先生、今回のif文のまとめですごく理解が深まりました!」
先生
「よかったね。if文は、条件に応じて処理を分けるときの基本だから、しっかり身につけておくと今後に活かせるよ。」
生徒
「elseやelifを使うことで、条件が複数あっても読みやすく書けるって分かりました!」
先生
「そうそう、elifを使えば「もし〜なら〜、それでもなければ〜」って順番に判断できるし、elseで最終的な処理も書けるから便利なんだ。」
生徒
「あと、andとかorで複数条件を組み合わせたり、ネストを使って細かく条件を書いたりするところも参考になりました!」
先生
「実務でもよく使うテクニックだから、ぜひ繰り返し練習してみて。エラーが出たらインデントや条件の順番を見直すと解決することが多いよ。」
生徒
「はい、もっと自分でもいろいろ試してみたいと思います!」