else文を使ってケース分けを明確にしよう
プログラミングにおいて、条件によって処理を分ける場面は非常に多くあります。特に、ある条件を満たす場合はAの処理、そうでない場合はBの処理といった二択を作りたいケースでは、if
文とelse
文の組み合わせが必須となります。ifだけでは足りない場合に、else文で「正解/不正解」など二つの道を分ける方法は、初心者にとってもわかりやすいロジックの基本形です。本記事では、Pythonにおけるif
とelse
の使い方を中心に、シンプルながら重要なポイントを学んでいきましょう。
ifだけで処理を分ける場合の限界
まずはif
文のみで条件分岐を行う例を考えてみます。たとえば、テストの点数が60点以上なら「合格」と判定したいコードは、以下のように書けます。
score = 70
if score >= 60:
print("合格です!")
このコードは「60点以上なら合格」のロジックを実装しています。ただし、もし60点未満だった場合には何も表示されません。「60点未満の場合にどうしたいのか?」という処理が考慮されていないのです。現実的なシーンでは、たとえば「不合格」のメッセージを出したいはずです。ここで登場するのがelse
文です。
else文で「そうでなければ」の場合を明確にする
if
文が提示する条件に合致しなかった場合の処理を指定したいときは、else
文を追加します。上記の例にelse
を加えると、次のように書けます。
score = 70
if score >= 60:
print("合格です!")
else:
print("不合格です...")
このようにif
~else
の形にすることで、「条件を満たした場合(True)の処理」と「満たさない場合(False)の処理」を明確に分けることができます。実行してみると、score
が70のときは「合格です!」と表示され、60点未満(たとえば50点)に変更すれば「不合格です…」と表示されます。これがif
だけでは足りない場合に使うelse
文の基本的な役割です。
「正解 / 不正解」など二つの道を分ける例
ここでは、クイズの正解を判定するプログラムを例にして、二つの道をはっきり分けてみましょう。たとえば「Pythonの拡張子は何ですか?」という問題に対して、ユーザーの回答が「.py」かどうかで判定するイメージです。
answer = input("Pythonの拡張子は何だと思いますか?: ")
if answer == ".py":
print("正解です! よくご存知ですね。")
else:
print("不正解です。正解は「.py」です。")
このコードは、ユーザーが答えを入力し、その値が".py"
なら「正解です!」、そうでなければ「不正解です。」と表示します。現実のアプリケーション開発やスクリプトでも、条件に合致するか合致しないかで大きく分岐させたいケースがあれば、このif
~else
のパターンが強力です。
ifとelseを使う上での注意点
1. インデントに注意
Pythonではインデントが意味を持ちます。if
やelse
の直後に続くブロックは、同じレベルのインデントでそろえてください。インデントを間違えると、意図した処理が書けなかったり、エラーが出たりします。
2. 条件設定をわかりやすく
if
文に書く条件が複雑すぎると、コードが読みづらくなります。二択の分岐なので、なるべくシンプルに「この条件がTrueならこうする、そうでなければこうする」という形が理想です。また、状況によってはif
文を複数利用する、もしくはelif
を挟むことで表現力を上げることも可能ですが、まずはif
~else
で二分するパターンに慣れましょう。
3. 条件が変わったときのメンテナンスを考慮する
一度書いたif
~else
文でも、後から条件が変わる場合があります。たとえば、70点以上なら「合格」にしたい、あるいはクイズの正解文字列が複数パターンあるといったケースです。条件の拡張があり得る前提でコードを書いておくと、後から修正しやすくなります。
初心者が陥りやすい誤用例
「ifだけで十分かも?」と思い、不正解の処理を書かないままにしてしまうと、コードを読む人にとっては「スルーされる可能性がある条件」を想定できず、思わぬバグが入り込むリスクがあります。たとえば、クイズでユーザーの回答が正解でない場合も、プログラムからの反応がまったくないと、ユーザーは混乱してしまいます。
また、単純に見えるif
~else
文であっても、インデントミスやスペルミスなどによってエラーや意図しない動作が起こることがあります。特に初心者のうちは、エラーメッセージを丁寧に読み、落ち着いて修正していくことが大切です。
elseを使ったロジックを発展させる
if
~else
構文は非常にシンプルですが、これを組み合わせることで複雑なロジックに発展させることができます。たとえば、二択ではなく複数パターンが必要になった場合はelif
を使います。例として、点数に応じて「優」「良」「可」「不可」と4段階に分けるとしましょう。
score = 85
if score >= 90:
print("優です!おめでとうございます。")
elif score >= 70:
print("良です。よくできました。")
elif score >= 60:
print("可です。まずまずですね。")
else:
print("不可です...もう少し頑張りましょう。")
このようにif
~elif
~else
を組み合わせれば、複数条件に対応可能です。もちろん、初心者のうちはまずif
~else
の二分岐をしっかり理解し、実践的な場面で迷わずに書けるようになることが大切です。
まとめ
本記事では、「ifだけでは足りない場合に使うelse文で、正解/不正解などの道を二つに分ける方法」について解説しました。ポイントをおさらいすると、以下のようになります。
- if文のみだと条件を満たさない場合の処理が書けず、想定外の動作やバグを招く可能性がある。
- if~elseの形で二つの処理パターンを明確に分けられる。
- 実際の開発では
score
やクイズのanswer
などの例のように、「条件に合致するかどうか」で処理を分けるシーンが多い。 - 初心者はインデントや条件の書き方に注意しつつ、簡単なサンプルコードから実践で使える形へと学びを深めるのがおすすめ。
特に、正誤判定が必要なときや条件がはっきり二択に分かれるときはif
~else
が大活躍します。今後、複雑な条件分岐を行うときにも、この基礎的なif~elseの理解が欠かせません。ぜひ自分のプロジェクトや学習用コードで積極的に試してみてください。