Practice: Grade Letter

Practice: Grade Letter

This exercise combines an elif chain with boundary conditions.

Exercise

  1. Define a function named grade_letter with one parameter, score (0 to 100).
  2. Return the letter grade as a string:
  3. 90 and above: "A"
  4. 80 to 89: "B"
  5. 70 to 79: "C"
  6. 60 to 69: "D"
  7. below 60: "F"

grade_letter(91) returns "A". grade_letter(90) also returns "A". grade_letter(89) returns "B".

Run your code to see the output, then press Submit.

Hints

  • Check from the highest grade down; each elif only sees scores the earlier checks rejected.
  • The boundaries are where mistakes happen — decide >= 90 vs > 90 deliberately.

Tests

import unittest


class TestGradeLetter(unittest.TestCase):
    def test_95_is_an_a(self):
        self.assertEqual(grade_letter(95), "A")

    def test_exactly_90_is_an_a(self):
        self.assertEqual(grade_letter(90), "A")

    def test_89_is_a_b(self):
        self.assertEqual(grade_letter(89), "B")

    def test_exactly_80_is_a_b(self):
        self.assertEqual(grade_letter(80), "B")

    def test_72_is_a_c(self):
        self.assertEqual(grade_letter(72), "C")

    def test_65_is_a_d(self):
        self.assertEqual(grade_letter(65), "D")

    def test_59_is_an_f(self):
        self.assertEqual(grade_letter(59), "F")

    def test_0_is_an_f(self):
        self.assertEqual(grade_letter(0), "F")
def grade_letter(score):
    if score >= 90:
        return "A"
    elif score >= 80:
        return "B"
    elif score >= 70:
        return "C"
    elif score >= 60:
        return "D"
    else:
        return "F"


print(grade_letter(95))
print(grade_letter(72))
print(grade_letter(40))
Solution hidden. Give it a real try first.

Sign in to join the discussion.

No comments yet. Be the first to ask a question.

main.py
Console
Press Run to execute your code, or Submit to test and complete this problem.