if文で条件分岐の基本を学ぶ
プログラミングでは、条件によって処理を切り替えたい場面が必ずと言っていいほど登場します。そのために使われる代表的な構文が、if文です。Pythonでのif文はシンプルかつ可読性が高い構造になっており、初心者でも比較的とっつきやすいという特徴があります。ここでは、条件式の結果(True
/ False
)に応じて処理を切り替える最も基本的な流れを中心に解説しながら、if文の使い方を学んでいきましょう。
if文の基本構造
まずは、if文の最もシンプルな形を見てみます。Pythonでは、if 条件式:
のあとにインデントを入れて処理を書くのが基本ルールです。以下は典型的な例です。
number = 10
if number > 5:
print("numberは5より大きいです。")
このコードでは、number > 5
の条件式が True
になる場合のみ、print
関数の処理が実行されます。Pythonでは、if文やループなどの構文でブロックを表現する際に、中カッコ{}
ではなくインデント(スペースやタブ)を用いる点が大きな特徴です。インデントのレベルを揃えておくことで、その範囲内のコードがifの対象として解釈されることになります。
if ~ else で真偽の2通りに処理を分ける
次に、「ある条件が真のときはこれを実行、偽のときはあれを実行」という流れを実現するためには、else
を組み合わせます。構文は以下のとおりです。
number = 3
if number > 5:
print("numberは5より大きいです。")
else:
print("numberは5以下です。")
number > 5
の条件が True
であれば if
節の処理が実行されますが、そうでなければ else
節(print("numberは5以下です。")
)が実行されます。このように、if文だけでなくelseを組み合わせると、条件式の真偽に応じた2通りの処理を簡単に書くことができます。
複数の条件分岐:if ~ elif ~ else
条件分岐は2通りに限らず、複数のケースに分けたいこともよくあります。その際には elif
(「else if」の略)を活用します。以下は具体例です。
score = 85
if score >= 90:
print("成績はAです。")
elif score >= 70:
print("成績はBです。")
elif score >= 50:
print("成績はCです。")
else:
print("成績はDです。")
上記コードの流れは以下のようになります。
score >= 90
がTrue
なら「成績はAです。」と表示し、他の条件はスキップ- そうでない場合、
score >= 70
を評価しTrue
なら「成績はBです。」と表示 - それでもなければ、
score >= 50
を評価しTrue
なら「成績はCです。」と表示 - 上記すべてが
False
であれば、else
節で「成績はDです。」と表示
このように elif
を必要なだけ挿入することで、多段階の分岐をスマートに記述できます。if
と else
だけを重ねて書くよりも可読性が高くなり、作業ミスを減らすことにもつながります。
条件式がTrueかFalseかを判定する仕組み
Pythonにおける条件式は、True
または False
のブール値を返す式です。比較演算子や論理演算子を組み合わせて複雑な条件式を作ることができます。代表的な演算子には以下のようなものがあります。
- 比較演算子:
>
,<
,>=
,<=
==
(等しい)!=
(等しくない)
- 論理演算子:
and
(かつ)or
(または)not
(否定)
たとえば、if (score >= 70) and (score < 90):
のように書くと、「scoreが70以上かつ90未満」のときに処理を行うという条件を表現できます。
if文を使った簡単な例:偶数・奇数の判定
ではもう少し身近な例として、入力した数値が偶数か奇数かを判定するコードを書いてみましょう。
number = int(input("数値を入力してください: "))
if number % 2 == 0:
print(f"{number} は偶数です。")
else:
print(f"{number} は奇数です。")
ここでは、ユーザーから数値を入力させ、その数値を2で割ったあまり (number % 2
) が0なら偶数、それ以外なら奇数と判定しています。このようにシンプルな条件式でも、if文を使うだけで簡潔に処理を分けることができます。
if文とコードブロックのインデントに注意
Pythonのif文を書く際には、インデントを正しく使うことがとても大切です。インデントの深さ(スペースの個数)を揃えなかったり、途中でタブとスペースを混在させたりするとエラーが発生する場合があります。また、どの範囲までがif文に含まれるかが曖昧になると、思わぬバグの原因になります。
PythonではPEP 8(Python Enhancement Proposal 8)というコーディング規約で、インデントにはスペース4つを推奨しています。エディタやIDEの設定で、自動的にタブ入力時にスペース4つへ変換されるように設定しておくと便利です。
複雑な条件になるほどシンプルに書く工夫を
条件式が複雑になってくると、if文がネスト(入れ子)になったり、and
やor
が入り組んだりして可読性が下がりがちです。そうした場合、以下のような工夫を検討してみましょう。
- 関数化:条件式が複雑なら別の関数に切り出し、
if check_condition(x)
のように呼び出す - 変数に代入:途中の中間的な論理演算結果を一時的に変数へ代入し、条件式をシンプルにする
- コメントの活用:なぜその条件分岐が必要か注釈を加える
まとめ
ここまで、if文を使った条件分岐の基本的な使い方について見てきました。Pythonにおける条件分岐のポイントは以下のとおりです。
- インデントでブロックを明確にし、
if 条件式:
やelif 条件式:
のあとに処理を書いていく - 真偽(
True
/False
)を返す条件式を正しく書く(比較演算子や論理演算子の理解が重要) if
・elif
・else
を組み合わせて、2通り以上の分岐にも対応できる- 可読性を保つためには、インデントやコードの分割に気をつける
プログラミングの世界において、条件分岐は非常に基本的かつ重要な技術です。実際の開発でも「条件によって処理を分ける」という場面は至るところで出現します。if文の考え方に慣れてしまえば、その後のループ処理やエラー処理、さらには大規模なコード設計にもスムーズにつなげることができます。ぜひ、ここで学んだ内容をもとにいろいろな条件分岐のパターンを試してみてください。
次は、条件分岐に関連して「ループの中でのif文」や「複雑な条件式の整理方法」などに興味を広げていくと、より応用的なスキルを身につけられます。Pythonのif文は比較的読みやすく書ける分、「どこまでif文に含まれるのか?」を明確にできるようにインデントを意識しながら、ぜひ数多くの実践経験を積んでみましょう。