次のフローチャートは、テストの得点(score)によって「お小遣いがいくら増えるか」を決めるものです。
お小遣いが増える条件と処理の流れは次のとおりです。
1. score を設定する(例として90を設定する)
2. score が 90 以上であれば up に 200 を設定する
3. score が 90 未満 80 以上であれば up に 100 を設定する
4. score が 80 未満であれば up に 0 を設定する
5. upを表示する
わかりにくいのは「3. score が 90 未満 80 以上であれば up に 100 を設定する」です。
そのまま条件を記述すると「80 ≦ score < 90 」となりますが、score が 90 以上の場合は一つ前の条件「2. score が 90 以上であれば up に 200 を設定する」で 処理されるため、条件3以降は 90 未満のデータだけになります。そのため、フローチャートでは「score >= 80」のみの条件になっています。
条件を記述する順番によっては、より簡単に条件を指定することができます。
フローチャートをPythonで記述すると次のようになります。
score = 90
if score >= 90:
up = 200
elif score >= 80:
up = 100
else:
up = 0
print(up)
プログラムの説明
| 行番号 |
Pythonの命令文 |
説明 |
|
1
|
score = 90
|
変数scoreに 90 を代入する
|
|
2
|
if score >= 90:
|
変数scoreの値が 90 以上であれば真となる条件を指定している
|
|
3
|
up = 200
|
条件が「真」の時に実行する命令文
変数upに 200 を代入する
|
|
4
|
elif score >= 80:
|
2行目のif文が偽の時に実行される判断文
変数 score が 80 以上であれば真となる条件を指定している
|
|
5
|
up = 100
|
4行目の条件が偽の時に実行する命令文 変数upに 100 を代入する
|
|
6
|
else:
|
2行目、4行目のいずれの条件にも当てはまらない場合の指定
scoreが 90 以上でも 80 以上 でもない場合
|
|
7
|
up = 0
|
どの条件にも当てはまらなかった場合に実行される 変数upに 0 を代入する
|
|
8
|
print(up)
|
変数upを出力する
|
Pythonでプログラムを作るのは、フローチャートをそのまま記述できそうだから簡単そう!
フローチャートなどで処理の手順が明確であれば、フローチャートのまま作成できることが多いです。
手順を考えることが重要ですね。
フローチャートとPythonプログラムを確認したらGoogle Colabでプログラムを実行しましょう。
1度の実行だけではなく、1行目の「90」を「69」などにして実行してみましょう。
もう一つアルゴリズムを確認しましょう。
次のフローチャートは、あるサービスの料金(amount)を表示する手順を表しています。
サービス料金は年齢(age)ごとに次のように求めます。
・65歳以上は1,000円
・15歳以上65歳未満は2,000円
・15歳未満は1,000円
赤枠で囲まれた箇所を見て気づくことはありませんか?
そうですね。「変数amount に 1000 を代入する」という同じ処理が入っています。
分岐で同じ処理があるときは、条件を工夫して記述すると一つにまとめることができます。
この場合は、65歳以上という条件と15歳未満という条件をまとめるってことですか?
はい、そうです。
まとめるためには「論理演算子」を利用します。条件式で利用する論理演算子について学習しましょう。