6日目のゴールと今日やること
6日目のテーマは
「条件によってメッセージを変える “if” の入口に触れること」 です。
これまでで、
printで画面を作る- 数字と計算
- 変数(名前をつけて値を持たせる)
までは来ました。
今日はそこに、ほんの少しだけ「考える力」を足します。
- もし〇日目なら、こう言う
- もし最終日なら、特別メッセージを出す
のように、
「状況に応じて出力を変える」 ことをやってみます。
新しく出てくるキーワードは if です。
でも、今日扱うのは本当に入口だけ。
「読みやすさ」と「感覚」を大事にして進めます。
「条件で分ける」とは何かを、まず日本語で考える
ふだんの会話にもある「もし〜なら」
プログラムの if は、
日本語でいう「もし〜なら」にあたります。
例えば、ふだんこんな会話、していますよね。
「もし雨が降ったら、傘を持っていく」
「もし時間が余ったら、復習をする」
この「もし〜なら」の部分を、
Python にも教えてあげるのが if です。
今日やりたいのは、
学習日数に応じて、メッセージを変えること。
例えば、
- まだ途中の日 → 「この調子で続けよう」
- 最終日 → 「完走おめでとう!」
みたいな違いをつけたい。
それを、if を使ってやってみます。
いちばん小さい if の形を見てみる
「もし day が 7 なら」の基本形
まずは、形をシンプルに見るところから始めます。
day = 7
if day == 7:
print("今日は最終日です!")
Pythonここでは、
day = 7
→ day という変数に 7 を入れる(これは今までどおり)
if day == 7:
→ 「もし day が 7 と“等しいなら”」
という意味になります。
ポイントがいくつかあります。
1つ目。== は「等しいかどうか」を比べる記号です。= は「代入(入れる)」、== は「比較(同じか調べる)」です。
2つ目。
行の最後に :(コロン)がついていること。if の条件文の最後には必ずコロンを書きます。
3つ目。print("今日は最終日です!") の前に、
スペース(インデント)がついていること。
Python では、「if の中でやること」を、
前にスペース(普通は4つ)を入れて書きます。
日本語で言うと、
「day が 7 なら、
『今日は最終日です!』と表示する」
という意味です。
if のインデント(字下げ)は「この中身が if の結果だよ」という印
インデントがないとどうなるか
さっきのコードを、わざとインデントなしで書くとどうなるか。
day = 7
if day == 7:
print("今日は最終日です!")
Pythonこれは、Python 的には「間違い」です。
if day == 7: の次の行は、
「if が真(条件を満たした)ときに実行する部分」なので、
必ずインデントして書かないといけません。
インデントは、「この行は if にぶら下がっているよ」という印です。
インデント付きで読むイメージ
もう一度、正しい形を見てみます。
day = 7
if day == 7:
print("今日は最終日です!")
Pythonこれを日本語にすると、
day に 7 を入れる
もし day が 7 なら、
この行(print)の命令を実行する
という“段落構造”になります。
「インデントされた行は、その上の if とセット」
この感覚を、ゆっくりでいいので掴んでください。
学習レポートアプリに「最終日メッセージ」を足す
まずは 5日目のコードを少し思い出す
5日目で、こんな設定をしていました。
name = "あなたの名前"
course_name = "Python 超初級編"
day = 6 # ← ここを変えれば何日目かが変わる
minutes_per_day = 60
total_days = 7
Pythonこの day と total_days を使えば、
「もし day が total_days と同じなら、最終日」
と判断できます。
if を足して「最終日だけ特別メッセージ」
さっそく条件を入れてみます。
name = "あなたの名前"
course_name = "Python 超初級編"
day = 6
minutes_per_day = 60
total_days = 7
total_minutes = minutes_per_day * total_days
total_hours = total_minutes / 60
print("===== 学習レポート =====")
print()
print("名前:")
print(name)
print()
print("コース名:")
print(course_name)
print()
print("今日は")
print(day)
print("日目です")
print()
# ここから条件によるメッセージ
if day == total_days:
print("おめでとうございます! これが最終日です!")
print("ここまで続けてきた自分をほめてあげましょう。")
Pythonここでの流れを整理すると、
- day と total_days を変数として持っておく
if day == total_days:で「もし最終日なら」を表現- その中でだけ、特別なメッセージを
printする
ということをしています。
day = 6 のままで実行すると、
「最終日メッセージ」は出ません。
day = 7 に変えて実行すると、
if の条件を満たすので、
特別メッセージが出てきます。
同じプログラムなのに、“条件によって表示が変わる”
ここが、今日一番味わってほしいポイントです。
「途中の日」と「最終日」でメッセージを切り替える
if と else をセットで使う
「最終日だけ特別」ではなく、
「途中の日」と「最終日」でメッセージを切り替えたいこともありますよね。
そのときに使えるのが else です。
基本形を見てみましょう。
day = 6
total_days = 7
if day == total_days:
print("おめでとうございます! 最終日です!")
else:
print("まだコースの途中です。この調子で続けましょう。")
Pythonこれの動きはこうです。
- もし
day == total_daysが真(True)なら
→ 上のprint("おめでとうございます! …")が実行される - そうでなければ
→else:以下のprintが実行される
「if の条件がダメだったら、代わりにこっちをやる」が else です。
学習レポートアプリに当てはめてみる
さっきのレポートに else を足してみましょう。
name = "あなたの名前"
course_name = "Python 超初級編"
day = 6
minutes_per_day = 60
total_days = 7
total_minutes = minutes_per_day * total_days
total_hours = total_minutes / 60
print("===== 学習レポート =====")
print()
print("名前:")
print(name)
print()
print("コース名:")
print(course_name)
print()
print("今日は")
print(day)
print("日目です")
print()
if day == total_days:
print("おめでとうございます! これが最終日です!")
print("7 日間、よくここまで続けました。")
else:
print("まだコースの途中です。")
print("少しずつ、一歩ずつ進んでいきましょう。")
print()
print("合計学習時間(時間):")
print(total_hours)
Pythonここでも、
day の値を 6 にするか 7 にするかで、
出てくるメッセージが変わります。
同じコードなのに、“設定によって” 出力が変わる。
これが「アプリっぽく」なってくる感覚です。
進捗に応じてメッセージを少しだけ細かくする
「前半」「後半」「最終日」に分けてみる
慣れてきたら、
もう一歩だけ踏み込んでみましょう。
例えば、こう分けてみるイメージです。
- まだ半分より前
- 半分は超えたけど、まだ最終日前
- 最終日
これを if / elif / else で表現できます。
day = 6
total_days = 7
if day == total_days:
print("おめでとうございます! 最終日です!")
elif day > total_days / 2:
print("コースの後半に入っています。この調子でゴールまで!")
else:
print("まだ前半です。焦らず、基礎を固めていきましょう。")
Pythonここで新しく出てきたのが elif です。
意味は「else if」(もし〜でなければ、今度は〜か?)のようなもの。
流れはこうです。
- まず
if day == total_daysをチェック - それがダメなら
elif day > total_days / 2をチェック - どちらでもなければ
elseに落ちる
つまり、
最優先:最終日かどうか
次:後半に入っているかどうか
それ以外:まだ前半
という順番で判断しています。
ここまでやるのは、6日目の「発展」部分です。
読んでみて、「なんとなく分かる」くらいなら十分です。
6日目で特に深く理解してほしいこと
1つ目。if 条件: と書くとき、
インデントされた行が「条件を満たしたときだけ実行される」
という構造になっていること。
2つ目。== は「等しいかどうかを比べる」ための記号であり、= は「値を入れる」ための記号だということ。
ここを取り違えると、一気に意味が変わります。
3つ目。
同じプログラムでも、day や total_days の値を変えることで、
出力を変えられるようになっていること。
「条件によってメッセージが変わる」というのが、アプリらしさにつながります。
6日目のまとめと、7日目へのつなぎ
6日目であなたは、
ifを使って、「もし〜ならこのメッセージ」という形をコードで表せるようになった。ifとelseを組み合わせて、「最終日」と「途中の日」でメッセージを切り替えられるようになった。dayやtotal_daysの値を変えて、同じコードが「違う状況のレポート」になる感覚を持てた。- インデント(字下げ)が、「どこまでが if の中身なのか」を示す大事な印だと理解し始めた。
7日目は、この1週間を振り返る日です。
print- 数字と計算
- 変数
- 画面の形(レポート)
- if(条件でメッセージを変える)
これらを、自分の言葉で説明できるかどうかを確認しながら、
「自分で説明できるレベルでの総まとめ」 をしていきます。
最後にひとつ、あなたに聞きたい。
今日のコードのどこかで、
「お、ここだけメッセージ変わるの、ちょっとアプリっぽいな」と感じた場所はありましたか?
最終日のメッセージかもしれないし、
途中の日への励ましの一言かもしれません。
その「アプリっぽさを感じた瞬間」が、
あなたと if をつなぐ一番大事なポイントです。
その感覚を持ったまま、7日目の総まとめに進んでいきましょう。

