Pythonのif文基礎|条件分岐の書き方をマスターしよう
Python初心者向けにif文の基本的な書き方を解説。条件分岐の基礎からelif、elseの使い方まで、実践的な例とともに学べます。
Pythonのif文基礎|条件分岐の書き方をマスターしよう
みなさん、プログラミングで「この条件の時だけ処理を実行したい」と思ったことはありませんか?
「年齢が18歳以上なら成人って判定したい」 「点数が80点以上なら合格って表示したい」 「パスワードが正しい時だけログインさせたい」
こんな時に使うのが条件分岐という仕組みです。
でも大丈夫です!Pythonの条件分岐は、日常の「もし〜なら」という考え方とほとんど同じなんです。 一度覚えてしまえば、とても便利で使いやすい機能だと気づくはずです。
この記事では、Python初心者の方に向けて、if文を使った条件分岐の基本的な書き方を詳しく解説します。 具体的な例とともに、実践的なスキルを身につけていきましょう!
if文って何?基本的な考え方を理解しよう
条件分岐のイメージをつかもう
条件分岐とは、「もし〜なら」という判断をプログラムで表現することです。 私たちも日常生活で、無意識にたくさんの条件分岐をしていますよね。
例えば、「もし雨が降っていたら傘を持つ」「もし時間があったら本を読む」といった具合です。 プログラミングでも、まったく同じ考え方をします。
# 基本的なif文の例age = 20
if age >= 18: print("成人です")
# 実行結果: 成人です
この例では、「年齢が18以上の場合」という条件が満たされているので、「成人です」と表示されます。
if文の書き方のルール
Pythonのif文には、覚えておくべきルールがあります。 でも心配いりません。とてもシンプルです。
# if文の基本構文if 条件: 実行する処理
# 具体例score = 85
if score >= 80: print("合格です") print("おめでとうございます")
重要なポイント
if
の後にコロン(:)を必ず付ける- 実行する処理は、インデント(字下げ)で表現する
- インデントは、スペース4つまたはタブ1つが一般的
インデントを間違えると、エラーになってしまいます。 最初は慣れないかもしれませんが、エディタが自動で調整してくれることが多いので安心してください。
比較演算子を使いこなそう
基本的な比較演算子
if文では、値を比較するための特別な記号を使います。 これを比較演算子と呼びます。
# 比較演算子の例a = 10b = 5
# 等しいif a == b: print("aとbは等しい")
# 等しくないif a != b: print("aとbは等しくない") # これが実行される
# より大きいif a > b: print("aはbより大きい") # これが実行される
# より小さいif a < b: print("aはbより小さい")
# 以上if a >= b: print("aはb以上") # これが実行される
# 以下if a <= b: print("aはb以下")
この例を実行すると、以下のような結果になります。
aとbは等しくない
aはbより大きい
aはb以上
比較演算子を使うことで、数値の大小や等価性をチェックできます。
文字列の比較も簡単
数値だけでなく、文字列も比較できます。 これは、ユーザー認証や入力チェックでよく使われます。
# 文字列の比較例name = "田中"password = "secret123"
# 文字列の等価比較if name == "田中": print("こんにちは、田中さん")
# パスワードチェックif password == "secret123": print("ログイン成功")else: print("パスワードが間違っています")
# 文字列の長さによる比較if len(password) >= 8: print("パスワードは十分な長さです")else: print("パスワードが短すぎます")
この例では、文字列の内容や長さをチェックしています。
len()
関数を使うと、文字列の文字数を取得できます。
elif と else で複数の条件を処理しよう
elifで複数の条件をチェック
一つの条件だけでなく、複数の条件を順番にチェックしたい場合があります。
そんな時に使うのがelif
です。
# 成績判定の例score = 85
if score >= 90: grade = "A"elif score >= 80: grade = "B"elif score >= 70: grade = "C"elif score >= 60: grade = "D"else: grade = "F"
print(f"点数: {score}点, 成績: {grade}")# 実行結果: 点数: 85点, 成績: B
この例では、点数に応じて成績を判定しています。 条件は上から順番にチェックされ、最初に満たされた条件の処理が実行されます。
85点の場合、最初のscore >= 90
は満たされませんが、2番目のscore >= 80
が満たされるので、成績は「B」になります。
elseで「それ以外」を処理
どの条件にも該当しない場合の処理は、else
で書きます。
# 年齢による区分age = 15
if age >= 65: category = "高齢者"elif age >= 20: category = "成人"elif age >= 13: category = "青少年" # これが実行されるelse: category = "子ども"
print(f"年齢: {age}歳, 区分: {category}")# 実行結果: 年齢: 15歳, 区分: 青少年
この例では、15歳の場合は「青少年」の条件に該当します。
else
は必ず書く必要はありませんが、予期しない値への対応として使うと安全です。
実践的な条件分岐の例
より実用的な例を見てみましょう。
# 天気による服装アドバイスweather = "雨"
if weather == "晴れ": print("軽装で大丈夫です")elif weather == "曇り": print("薄手の上着があると良いです")elif weather == "雨": print("傘を忘れずに") # これが実行されるelif weather == "雪": print("防寒着が必要です")else: print("天気情報を確認してください")
# 実行結果: 傘を忘れずに
このように、elif
を使うことで複数の条件を効率的にチェックできます。
論理演算子で条件を組み合わせよう
and、or、notの使い方
複数の条件を組み合わせたい場合は、論理演算子を使います。
# and(両方の条件が真の場合)age = 25has_license = True
if age >= 18 and has_license: print("運転できます") # これが実行される
# or(どちらかの条件が真の場合)weather = "雨"has_umbrella = False
if weather == "晴れ" or has_umbrella: print("外出できます")else: print("傘が必要です") # これが実行される
# not(条件を反転)is_weekend = False
if not is_weekend: print("平日です") # これが実行される
andは、すべての条件が満たされた場合に真になります。 orは、いずれかの条件が満たされた場合に真になります。 notは、条件を逆にします。
複雑な条件の組み合わせ
論理演算子を組み合わせることで、より複雑な条件を表現できます。
# 複雑な条件の組み合わせ例score = 75attendance = 90
if score >= 80 and attendance >= 85: result = "優秀"elif score >= 70 or attendance >= 90: result = "良好" # これが実行されるelse: result = "要改善"
print(f"評価: {result}")# 実行結果: 評価: 良好
この例では、点数が70点以上または出席率が90%以上の場合に「良好」と判定されます。 75点で出席率90%なので、「良好」になります。
実践的なif文の使い方
ユーザー入力の処理
実際のプログラムでは、ユーザーからの入力に基づいて条件分岐することがよくあります。
# 簡単なクイズプログラムdef quiz_game(): """簡単なクイズゲーム""" print("=== Python クイズ ===") print("Pythonで条件分岐に使うキーワードは?") print("1. if") print("2. when") print("3. case") # ユーザーの回答を取得(実際のプログラムではinput()を使用) answer = "1" # 仮の入力 if answer == "1": print("正解!ifが正しい答えです。") score = 10 elif answer == "2" or answer == "3": print("不正解。正解はifです。") score = 0 else: print("1、2、3のいずれかを選択してください。") score = 0 return score
# 関数の実行quiz_score = quiz_game()print(f"クイズスコア: {quiz_score}点")
この例では、ユーザーの回答に応じて異なるメッセージを表示し、スコアを計算しています。
データの分類と判定
リストや辞書のデータを処理する際の条件分岐も見てみましょう。
# 学生データの処理students = [ {"name": "田中", "score": 85, "grade": 2}, {"name": "佐藤", "score": 92, "grade": 3}, {"name": "鈴木", "score": 76, "grade": 1}, {"name": "高橋", "score": 68, "grade": 2}]
print("=== 学生成績処理 ===")
for student in students: name = student["name"] score = student["score"] grade = student["grade"] # 成績評価 if score >= 90: evaluation = "優秀" elif score >= 80: evaluation = "良好" elif score >= 70: evaluation = "普通" else: evaluation = "要改善" # 学年による追加判定 if grade == 1: grade_status = "1年生(基礎重要)" elif grade == 2: grade_status = "2年生(応用開始)" else: grade_status = "3年生(進路決定)" # 特別な条件 special_note = "" if score >= 95: special_note = " ★優秀賞候補★" elif score < 60 and grade == 3: special_note = " ⚠️進路相談要⚠️" print(f"{name}({grade_status}): {score}点 - {evaluation}{special_note}")
この例では、学生のデータを処理し、点数や学年に応じて異なる評価やコメントを表示しています。
よくある間違いと対処法
インデントの間違いに注意
Pythonでは、インデント(字下げ)が文法の一部です。 間違いやすいポイントを確認しましょう。
# 間違い: インデントがないscore = 85if score >= 80:print("合格") # IndentationError が発生
# 正しい: 適切なインデントif score >= 80: print("合格") # OK
# 間違い: インデントが不揃いif score >= 80: print("合格") print("おめでとう") # IndentationError が発生
# 正しい: インデントを揃えるif score >= 80: print("合格") print("おめでとう") # OK
エディタの設定で、インデントを可視化すると間違いを防げます。 多くのエディタは、自動でインデントを調整してくれるので活用しましょう。
比較演算子の間違い
比較演算子の使い方でよくある間違いを確認しましょう。
# 間違い: 代入演算子を使用score = 85if score = 80: # SyntaxError が発生 print("80点")
# 正しい: 比較演算子を使用if score == 80: # OK print("80点")
# 正しい: 範囲指定の書き方age = 25if 18 <= age <= 65: # Pythonでは範囲指定ができる print("労働可能年齢")
# 間違い: 他の言語の書き方if age >= 18 && age <= 65: # SyntaxError(Pythonでは&&は使わない) print("労働可能年齢")
# 正しい: Pythonの論理演算子if age >= 18 and age <= 65: # OK print("労働可能年齢")
Pythonの文法に慣れることで、こうした間違いを避けられます。
より効率的な書き方
同じ処理でも、より効率的で読みやすい書き方があります。
# 効率的でない書き方grade = "B"if grade == "A" or grade == "B" or grade == "C": print("合格")
# 効率的な書き方: in演算子を使用if grade in ["A", "B", "C"]: print("合格")
# 効率的でない書き方temperature = 25if temperature >= 20 and temperature <= 30: print("快適な温度")
# 効率的な書き方: Pythonの範囲指定if 20 <= temperature <= 30: print("快適な温度")
Pythonらしい書き方を覚えると、コードがより読みやすくなります。
まとめ:if文をマスターして条件分岐を自在に使おう
Pythonのif文について、重要なポイントをまとめておきましょう。
基本構文のおさらい
基本的な書き方
if 条件:
の形で書く- 実行する処理はインデント(字下げ)で表現
- コロン(:)を忘れずに付ける
比較演算子
==
(等しい)、!=
(等しくない)>
、<
、>=
、<=
(大小比較)- 数値も文字列も比較できる
複数条件の処理
elif と else
elif
で複数条件を順番にチェックelse
でどの条件にも該当しない場合を処理- 条件は上から順番に評価される
論理演算子
and
(両方真)、or
(どちらか真)、not
(否定)- 複数条件の組み合わせが可能
実践的な活用
ユーザー入力の処理
- 入力値の検証や分類
- エラーハンドリング
データの分類と判定
- リストや辞書の要素を条件で分類
- ビジネスロジックの実装
よくある間違いの対策
インデントに注意
- エディタの設定を活用
- インデントの可視化
比較演算子の正しい使用
=
と==
を混同しない- Pythonの論理演算子を使う
効率的な書き方を覚える
in
演算子の活用- 範囲指定の記法
if文は、プログラミングの基本的な制御構造です。 最初は慣れないかもしれませんが、実際にコードを書いて練習することで必ず身につきます。
日常の「もし〜なら」という考え方をプログラムで表現できるようになると、とても便利で楽しく感じるはずです。 ぜひ、様々な条件分岐パターンを試して、Pythonでの条件処理をマスターしてくださいね!