【授業レポート】システム開発入門 第3週目:Pythonのif文で条件分岐を学ぶ

boy in green shirt
Photo by CDC on Pexels.com

高校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側の「不合格」が表示されます。

  1. scoreに65を代入する。
  2. scoreが70以上かを確かめる。
  3. 条件が成り立たないため、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は覚えやすいかも」という声が上がりました。

生活のルールを条件に置き換える

授業の後半では、生活の中にある「もし何かが成り立つなら、こうする」というルールを探し、条件分岐に置き換えました。

たとえば、天気が「晴れ」なら洗濯物を外に干し、それ以外なら部屋に干すという例です。

  • 条件:天気が「晴れ」か。
  • 条件が成り立つ場合:洗濯物を外に干す。
  • 条件が成り立たない場合:洗濯物を部屋に干す。

日常のルールをこの三つに分けると、ifelseの役割を具体的に捉えられます。

生徒の一人は家庭のルールを題材にし、田中先生も現実に即した発想を評価していました。

第3週目で学んだこと

  • ifで、条件が成り立つ場合の処理を書ける。
  • elseで、条件が成り立たない場合の処理を書ける。
  • elifで、三つ以上の処理に分けられる。
  • 字下げによって、各条件に対応する処理を読み分けられる。
  • 値を変えながら、条件と表示結果の関係を確かめられる。

条件分岐を学んだことで、生徒たちは自分で決めたルールをコードとして表す一歩を踏み出しました。

システム開発授業の全体像では、Pythonの基礎から先の学習の流れも紹介しています。

次回は繰り返し処理へ

次回は、同じ処理を繰り返す「ループ」を学びます。

授業の続きは、第4週目の授業レポートで紹介しています。

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)