Pythonのif文とは?基本構文や条件式の書き方を徹底解説

Pythonのif文は、条件に応じてプログラムの動作を変更するための基本的かつ重要な制御構文です。プログラムの流れを柔軟に操作できるif文は、アプリケーション開発で欠かせません。
本記事では、if文の基本的な構文から始め、より複雑な条件分岐の実装方法に至るまで、具体的なコード例を交えながら詳しく解説します。Python特有のシンプルかつ読みやすい記述方法を理解し、実践力を高めるためのステップを踏んでいきましょう。
Contents
Pythonのif文とは?
プログラミング言語Pythonで条件分岐をおこなう制御構文がif文です。
if文を使うと、特定の条件が成り立つ場合と成り立たない場合で、プログラムの動作を変えることができます。例えば「年齢が20歳以上なら入場可能、20歳未満なら入場不可」などの判断が可能です。
Pythonのif文の特徴は、インデント(行頭の空白)によってブロックを表現する点です。インデントにより、プログラムの構造が視覚的に分かりやすくなります。
ifのみの基本の書き方
if文の基本的な構文は以下のとおりです。
if 条件式:
処理内容 # 条件式が真(True)の場合に実行される
if文を書く際は、条件式のあとにコロン(:)を付け、処理内容は4つのスペースでインデントをつける(字下げする)必要があります。
Pythonではインデントによってコードブロックを判断します。
具体的な例を見てみましょう。
age = 20
if age >= 20: # ageが20以上
print(“成人です”)
条件式が成り立つ(Trueとなる)場合のみ、インデントしたコードブロックが実行されます。上記の例では、変数ageが20以上の場合に「成人です」と表示されます。
条件式の書き方
条件式は、プログラムの処理を分岐させるための判定基準を記述する式です。
条件式の評価結果は真偽値(True/False)となり、if文では評価結果に基づいてプログラムの動作が変化します。
比較演算子(==, !=, >, <, >=, <=)
比較演算子は、2つの値を比較して真偽値を返す演算子です。数値や文字列の比較に利用できます。
x = 5
y = “Hello”
# 下記の条件式の評価結果はいずれも真(True)となります。
x == 5 # 5に等しい (True)
x != 3 # 3と等しくない (True)
x > 3 # 3より大きい (True)
x < 10 # 10より小さい (True)
x >= 5 # 5以上 (True)
x <= 5 # 5以下 (True)
y == “Hello” # 文字列の比較も可能 (True)
論理演算子(and, or, not)
論理演算子は、複数の条件を組み合わせる際に使用します。
andは両方の条件がTrueのときTrue、orは片方か両方がTrueのときTrueとなり、notは真偽値を反転させます。
age = 25
income = 300000
age >= 20 and income >= 250000 # 両方の条件を満たす (評価結果: True)
age < 20 or income >= 250000 # incomeの条件を満たす (評価結果: True)
not age < 20 # 条件の否定 (評価結果: True)
複数条件の組み合わせの場合
複雑な条件式では、括弧()を使用して優先順位を明確にします。
複数の条件を組み合わせる場合、可読性を考慮して適切に改行やインデントを入れるとよいでしょう。
score = 85
attendance = 80
bonus = True
# 複数条件の組み合わせ
result = (score >= 80 and attendance >= 85) or (
bonus and score >= 70
)
print(result) # True
if文の応用例
より実践的なif文の例をご紹介します。
条件式が偽のケースに対応(else)
if-else文を使うと、条件が成り立たない(条件式がFalseに評価される)場合の処理を指定できます。
age = 20
if age >= 20:
print(“成人です”) # 条件が真の場合
else:
print(“未成年です”) # 条件が偽の場合
複数条件への対応(elif)
複数の条件分岐が必要な場合は、if-elif-else文が便利です。elifは複数記載できます。
score = 85
if score >= 90:
print(“優”) # 90点以上
elif score >= 80:
print(“良”) # 80点以上90点未満
else:
print(“可”) # 80点未満
ネストされたif文
ネストされたif文は、外側のif文の中にさらにif文を配置して、複数の条件を階層的に評価する方法で、より複雑な条件分岐が実現できます。
age = 20
is_student = True
if age < 18:
print(“未成年”)
else:
if is_student:
print(“成人学生”)
else:
print(“成人一般”)
三項演算子
条件式を短く書きたい場合は、三項演算子が使えます。
# 三項演算子の構文 「a if 条件式 else b」
# a: 条件がTrueの場合に返される値です。
# b: 条件がFalseの場合に返される値です。
age = 20
status = “成人” if age >= 20 else “未成年”
print(status) # 成人
便利な演算子
リストや文字列に特定の要素が含まれているかを確認する場合は、in演算子が便利です。
fruits = [“りんご”, “みかん”, “バナナ”]
if “りんご” in fruits:
print(“りんごがあります”)
変数がNoneかどうかを判定する場合は、is演算子を使います。
value = None
if value is None:
print(“値が設定されていません”)
読みやすいif文の書き方
複雑な条件式は、変数に分けて記述すると可読性が向上します。
age = 20
income = 300000
is_adult = age >= 20
has_enough_income = income >= 250000
if is_adult and has_enough_income:
print(“ローンを申し込めます。”)
まとめ
Pythonのif文は、コードの可読性を重視した設計になっています。
基本構文から応用まで、段階的に理解を深めることで、効率的な条件分岐処理が実装できます。
本記事で学んだ内容を参考に、実際にコードを書いて練習してみましょう。