第3回では「変数とデータ型」で、コーヒー1杯分・釣り1回分のログを1件のデータとして表現しました。
第4回では「リストと辞書」で、複数件のログを「辞書のリスト」としてまとめて扱うところまで進みました。
ここまで来ると、Pythonの中にはたくさんの情報がたまっていきます。
- 最近飲んだコーヒーたち
- シーズン中の釣りログ
しかし、ただ溜めておくだけ ではちょっともったいない。
せっかくなら、
- 「自分が本当に気に入ったコーヒーだけを見返したい」
- 「50cm以上のブラウンだけを一覧にしたい」
そんな “意味のある切り取り方” をしたくなります。
そのときに活躍するのが、
- if文(条件分岐)
- for文(繰り返し)
という2つの構文です。
今回のゴールは、
「if × for を使って、ログから『自分にとって意味のあるものだけ』をすくい取れるようになること。」
難しい数式は一切出てきません。
湖のほとりで「これは残しておきたいな」と感じる瞬間と同じように、
データの中から「残したいもの」を選ぶ感覚を身につけていきます。
この回のゴールと全体像
第5回でできるようになってほしいことは、次の4つです。
- if文の基本的な書き方と「条件」の考え方がわかる
- 比較演算子(==, !=, >, < など)と論理演算子(and, or, not)がイメージできる
- for文でリストを1件ずつなめるイメージが持てる
- 「辞書のリスト」に対して if × for でフィルタリングができる
ここまで来れば、
- 「スコアが○点以上のコーヒーだけ」
- 「50cm以上の魚だけ」
といった、シンプルな分析や絞り込み ができるようになります。
if文とは?「〜だったらこうする」という分岐
if文は、
「もし〜だったら、こうする」
をPythonに伝えるための文です。
日常生活でも、
- もし天気が良かったら、湖へ行く
- もし雨なら、家で音楽を聴きながらコーヒーを淹れる
というように、条件によって行動を変えますよね。
それをそのままコードにしたのが if 文です。
if文の基本形
if 条件:
実行したい処理
ポイントは3つ:
ifのあとに「条件」を書いて、最後に:(コロン)- その下の行を インデント(字下げ) する(スペース4つ or Tab)
- 条件が
Trueのときだけ、インデントした行が実行される
例:評価の高いコーヒーだったらメッセージを出す
coffee_score = 4.5
if coffee_score >= 4.0:
print("これはかなりお気に入りのコーヒーだ。ログに星マークをつけておこう。")
coffee_score >= 4.0 が True なら、print が実行されます。
比較演算子と論理演算子 条件の材料たち
if文の中で使う「条件」は、
比較演算子 や 論理演算子 を組み合わせて書きます。
主な比較演算子
if文の中で使う「条件」は、
比較演算子 や 論理演算子 を組み合わせて書きます。
== 左右が等しい
!= 左右が等しくない
> 左が右より大きい
>= 左が右以上
< 左が右より小さい
<= 左が右以下
例:魚のサイズで条件分岐
fish_length_cm = 52
if fish_length_cm >= 50:
print("50アップ!うれしい一本だ。")
文字列の比較
coffee_origin = "エチオピア"
if coffee_origin == "エチオピア":
print("今日もエチオピア。フルーティーな一杯になりそう。")
論理演算子(and / or / not)
条件を組み合わせたいときに使います。
and 両方とも True のときだけ True
or どちらか一方でも True なら True
not True / False を反転させる
例:エチオピアでスコア4.0以上なら「特にお気に入り」
coffee_origin = "エチオピア"
coffee_score = 4.5
if coffee_origin == "エチオピア" and coffee_score >= 4.0:
print("エチオピアで4.0以上。かなりお気に入りの一杯。")
例:ブラウンかレイクなら「レイクトラウト系」とみなす(or)
fish_type = "ブラウントラウト"
if fish_type == "ブラウントラウト" or fish_type == "レイクトラウト":
print("レイクトラウト系の魚だ。ファイトも強い。")
if / elif / else で「三択・多段階」の分岐
「Aならこれ」「Bならこれ」「それ以外ならこれ」というように、
条件がいくつか分かれている場合は elif と else を使います。
基本形
if 条件1:
処理1
elif 条件2:
処理2
else:
それ以外のときの処理
例:コーヒーのスコアでコメントを変える
coffee_score = 3.8
if coffee_score >= 4.5:
print("かなり特別な一杯。記念すべきレベル。")
elif coffee_score >= 4.0:
print("安定して美味しい。リピートしたい。")
elif coffee_score >= 3.0:
print("普通に美味しい。気分次第でまた飲むかも。")
else:
print("好みとは少し違うかもしれない。")
for文とは?リストの中を「ひとつずつ」なめていく
次は for文(繰り返し) です。
これは、リストなどの「ならび」を ひとつずつ取り出して処理する ための構文です。
基本形
for 要素 in リスト:
繰り返したい処理
例:コーヒー名のリストを1つずつ表示する
coffees = [
"エチオピア浅煎り",
"グアテマラ中煎り",
"ケニア深煎り"
]
for name in coffees:
print("最近飲んだコーヒー:", name)
name には、リストの中の要素が 順番に 入ってきます。
辞書のリスト × for文 – ログを1件ずつ扱う
第4回で作ったような「辞書のリスト」があるとしましょう。
coffee_logs = [
{
"date": "2025/05/01",
"name": "エチオピア浅煎り",
"score": 4.5
},
{
"date": "2025/05/02",
"name": "グアテマラ中煎り",
"score": 4.0
},
{
"date": "2025/05/03",
"name": "ケニア深煎り",
"score": 3.2
}
]
これを for 文でなめて、1件ずつ表示してみます。
for log in coffee_logs:
print("日付:", log["date"])
print("名前:", log["name"])
print("スコア:", log["score"])
print("----------------")
log には、リストの中の 1件分の辞書 が順番に入ってきます。
if × for で「条件に合うものだけ」を抽出する
ここからが本番です。
for で1件ずつ取り出しつつ、if でふるいにかける ことで、
- スコアが高いコーヒーだけ
- 50cm以上の魚だけ
といった抽出ができるようになります。
スコア4.0以上のコーヒーだけ表示
for log in coffee_logs:
if log["score"] >= 4.0:
print("★ お気に入り候補")
print("日付:", log["date"])
print("名前:", log["name"])
print("スコア:", log["score"])
print("----------------")
if の条件に合ったログだけが表示されます。
50cm以上の魚だけを表示(釣りログ編)
fishing_logs = [
{
"date": "2025/04/29",
"lake": "中禅寺湖",
"fish_type": "ブラウントラウト",
"fish_length_cm": 48,
"is_released": True
},
{
"date": "2025/05/01",
"lake": "中禅寺湖",
"fish_type": "ブラウントラウト",
"fish_length_cm": 52,
"is_released": True
},
{
"date": "2025/05/05",
"lake": "中禅寺湖",
"fish_type": "レイクトラウト",
"fish_length_cm": 60,
"is_released": False
}
]
print("50cm以上だけを表示")
print("===================")
for log in fishing_logs:
if log["fish_length_cm"] >= 50:
print("日付:", log["date"])
print("魚種:", log["fish_type"])
print("サイズ:", log["fish_length_cm"], "cm")
print("リリース?:", log["is_released"])
print("----------------")
こういう「条件で絞る処理」は、現実のデータ分析でも頻出です。
趣味ログの段階で慣れておくと、仕事でもすんなり応用できます。
break / continue で繰り返しを少しコントロールする
もう一歩だけ踏み込みたい人向けに、
for 文の中でよく使う break と continue も触れておきます。
break – そこで繰り返しを「終わらせる」
たとえば、「今シーズン最初に釣れた50cm以上の魚だけ知りたい」とします。
条件に合うものを1件見つけたら、そこでループを終わらせたい場合に break を使います。
for log in fishing_logs:
if log["fish_length_cm"] >= 50:
print("シーズン最初の50アップ:")
print("日付:", log["date"])
print("魚種:", log["fish_type"])
print("サイズ:", log["fish_length_cm"], "cm")
break # ここでループを終了
continue – その1回だけ「スキップする」
一方、「リリースしていない魚は集計からスキップしたい」
といった場面では continue が使えます。
for log in fishing_logs:
if not log["is_released"]:
# リリースしていないので、この1件はスキップ
continue
# ここには「リリースした魚」だけが来る
print("リリースした魚:", log["fish_type"], log["fish_length_cm"], "cm")
よくあるつまずきポイント(if & for 編)
初心者がハマりがちなポイントを、ここでまとめておきます。
- インデント(字下げ)をそろえ忘れる
- if や for の中の行は、必ず同じ幅でインデントする
- スペース4つ or Tab で統一する(混ざるとエラーのもと)
:(コロン)の付け忘れif 条件:/for 〜 in 〜:の最後に:を忘れがち
=と==の混同=は「代入」(値を入れる)==は「等しいかどうかの比較」- if の条件には
==を使う
- キー名のスペルミス
log["fish_length_cm"]のように、辞書のキー名はスペルが1文字でも違うとエラー- 自分で決めたキー名をコピペする癖をつけると良い
今日のまとめ – 「条件」と「繰り返し」で世界を切り取る
今回は、
- if文で「もし〜だったら、こうする」という分岐を書く
- 比較演算子・論理演算子で条件を組み立てる
- for文でリストや「辞書のリスト」を1件ずつ処理する
- if × for で「条件に合うログだけ」を抽出する
というところまで進みました。
ここまでできると、Pythonの中で
- 自分のお気に入りのコーヒーだけを一覧にしたり
- 思い出に残る魚だけを抜き出したり
といった、「意味のある振り返り」 が一気にやりやすくなります。
それはまるで、
日記の中から「大切な一文」だけを拾い上げる作業に少し似ています。
次回予告 – ファイル(CSV)にログを書き出して残す
今までは、Pythonのコードの中にログを直接書いてきました。
次回からは、いよいよ
- ファイル(特にCSV)への読み書き
に入っていきます。
- 釣りログをCSVファイルに書き出しておく
- コーヒーログをCSVから読み込んで集計する
などができるようになると、
「ノート」+「Python」+「ファイル」
を組み合わせた、かなり実用的なログシステムが見えてきます。
湖やコーヒータイムの記憶を、
そっとデータとして残していくための一歩として、
次回もゆっくり進んでいきましょう。




コメント