高校1年生のシステム開発入門は、第3週目を迎えました。
今回は、前回学んだ変数と計算を使いながら、Pythonのif文で処理を切り替える方法を学びました。
条件に応じて実行する命令を選べるようになると、入力された値に合わせて結果を変えるプログラムを作れます。
条件分岐とは何か
条件分岐とは、条件が成り立つかどうかによって、実行する処理を分ける仕組みです。
授業では、田中先生が「もしスコアが80点以上なら合格と表示する」という例を示しました。
score = 85
if score >= 80:
print("合格")
score >= 80は、「scoreの値が80以上か」を確かめる条件です。
この条件が成り立つときだけ、字下げされたprint("合格")が実行されます。
ここでいう「判断」は、人のように考えることではなく、あらかじめ書かれた条件を確かめ、対応する命令を選ぶことを指します。
田中先生は、この仕組みを「プログラムがただの計算機から『賢い仕組み』に変わる」と説明しました。
ifとelseで二つの処理を分ける
最初の実習では、点数に応じて「合格」か「不合格」のどちらかを表示するプログラムを作りました。
score = 65
if score >= 70:
print("合格")
else:
print("不合格")
ifは条件が成り立つ場合の処理を示し、elseはその条件が成り立たない場合の処理を示します。
この例ではscoreが65なので、「70以上」という条件は成り立たず、else側の「不合格」が表示されます。
scoreに65を代入する。scoreが70以上かを確かめる。- 条件が成り立たないため、
else側の処理を実行する。
生徒たちは点数を書き換え、表示結果が変わる様子を確かめました。
「点数を変えてみたら表示が変わった。面白い」
値、条件、結果のつながりを自分で試せることが、実習の理解を助けていました。
elifで三つ以上の処理に分ける
次の実習では、elifを加え、点数を四つのランクに分けました。
score = 92
if score >= 90:
print("Sランク")
elif score >= 70:
print("Aランク")
elif score >= 50:
print("Bランク")
else:
print("Cランク")
elifは、前の条件が成り立たなかったときに、別の条件を確かめるために使います。
条件は上から順に確かめられるため、この例では最初に成り立った分岐の処理が実行されます。
| 確かめる範囲 | 表示結果 |
|---|---|
| 90以上 | Sランク |
| 70以上90未満 | Aランク |
| 50以上70未満 | Bランク |
| 50未満 | Cランク |
scoreが92なら最初の条件が成り立つため、「Sランク」と表示されます。
生徒からは「ゲームのランク評価みたいで楽しい」「elifは覚えやすいかも」という声が上がりました。
生活のルールを条件に置き換える
授業の後半では、生活の中にある「もし何かが成り立つなら、こうする」というルールを探し、条件分岐に置き換えました。
たとえば、天気が「晴れ」なら洗濯物を外に干し、それ以外なら部屋に干すという例です。
- 条件:天気が「晴れ」か。
- 条件が成り立つ場合:洗濯物を外に干す。
- 条件が成り立たない場合:洗濯物を部屋に干す。
日常のルールをこの三つに分けると、ifとelseの役割を具体的に捉えられます。
生徒の一人は家庭のルールを題材にし、田中先生も現実に即した発想を評価していました。
第3週目で学んだこと
ifで、条件が成り立つ場合の処理を書ける。elseで、条件が成り立たない場合の処理を書ける。elifで、三つ以上の処理に分けられる。- 字下げによって、各条件に対応する処理を読み分けられる。
- 値を変えながら、条件と表示結果の関係を確かめられる。
条件分岐を学んだことで、生徒たちは自分で決めたルールをコードとして表す一歩を踏み出しました。
システム開発授業の全体像では、Pythonの基礎から先の学習の流れも紹介しています。
次回は繰り返し処理へ
次回は、同じ処理を繰り返す「ループ」を学びます。
授業の続きは、第4週目の授業レポートで紹介しています。
