問題
あなたは学校の成績処理係です。生徒のテストの点数 S が与えられるので、以下の基準で成績を出力してください。
| 点数の範囲 | 出力 |
|---|---|
| 80 ≤ S ≤ 100 | A |
| 60 ≤ S < 80 | B |
| 40 ≤ S < 60 | C |
| 0 ≤ S < 40 | D |
入力形式
S
制約
$0 \le S \le 100$
S は整数
入出力例
入力例 1
85出力例 1
A入力例 2
60出力例 2
B入力例 3
39出力例 3
Dヒント (段階的開示)
ヒント1: 方向性
Pythonの
if / elif / else で順番に条件を確認していきましょう。条件は上から順に評価されます。ヒント2: アプローチ
上から「最も高い点数帯」から順に書くと、それ以降の
elif では「80未満なのは確定」という前提で書けます。ヒント3: 誘導
S = int(input())
if S >= 80:
print("A")
elif S >= 60:
print("B")
elif S >= 40:
print("C")
else:
print("D")
模範解答 (Python)
S = int(input())
if S >= 80:
print("A")
elif S >= 60:
print("B")
elif S >= 40:
print("C")
else:
print("D")
Step-by-Step 解説
1入力を整数として受け取る
S = int(input())。数が1つだけなので split() は不要。
2if / elif / else で条件分岐
elif S >= 60 だけで「60以上80未満」を表せる。if S >= 80 が False ということは S < 80 が既に確定しているから。
3else で残りをまとめる
全条件が False のときに実行される。今回は「S < 40」のケース。
全条件が False のときに実行される。今回は「S < 40」のケース。
よくあるミス
| ミス | 原因 | 正しい書き方 |
|---|---|---|
if S >= 60: を独立に書く | elif ではない | elif S >= 60: |
elif S > 60: | 60がCになる | elif S >= 60: |
int(input()) を忘れる | 文字列と整数の比較エラー | 必ず int() |
else if | C/Javaのクセ | Pythonは elif |
次のステップ
- 発展: 「A」のとき追加メッセージを出力(if のネスト)
- 次回予告: 条件分岐の応用問題