今回やること
点数から合格判定と評価を出すツールを作ります。
成績判定は、if文と関数を組み合わせる練習に向いています。
この制作では、点数を一つずつ判定し、最後に平均点を表示します。先に数値計算、比較演算子、リスト操作まで動かせると理解しやすくなります。
完成コード
grade_judge_tool.py を作ります。
scores = [95, 82, 70, 58, 40]
def judge_grade(score):
if score >= 90:
return "A"
if score >= 80:
return "B"
if score >= 60:
return "C"
return "D"
def is_passed(score):
return score >= 60
total = 0
for score in scores:
total += score
grade = judge_grade(score)
result = "合格" if is_passed(score) else "不合格"
print(f"{score}点: {grade}評価 / {result}")
average = total / len(scores)
print("----------")
print(f"平均点: {average:.1f}点")
動作確認
python grade_judge_tool.py
各点数の評価と 平均点: 69.0点 が表示されれば成功です。
判定の境界も確認します。scores を [59, 60, 89, 90] に変え、59点は不合格・D、60点は合格・C、89点は合格・B、90点は合格・Aになれば条件式が境界を正しく扱えています。
コードの考え方
judge_gradeは評価を返す関数ですis_passedは合格かどうかを返す関数です- 合計を出してから平均点を計算します
- 関数を分けると、判定ルールを直しやすくなります
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
| 判定が変 | if文の順番が違う | 高い点数から判定する |
ZeroDivisionError | 点数リストが空 | 空のリストを避ける |
| 平均が違う | 合計や件数が違う | total と len を確認 |
scores = [] の場合、平均を計算すると0で割ることになります。実用的なtoolへ進めるときは、平均を出す前に if len(scores) == 0: で止めます。例外の扱いはtry・except入門でも練習できます。
練習
- 点数を自分で変える
- 50点以上を合格にする
- S評価を追加する
- 最高点と最低点を表示する
次のステップ
ここまで進めたら、入力した点数をlistへ追加する機能や、結果をファイルへ保存する制作へ進めます。