Calculate GPA - codepath/compsci_guides GitHub Wiki

Unit 2 Session 1 (Click for link to problem statements)

U-nderstand

Understand what the interviewer is asking for by using test cases and questions about the problem.

  • What should my program do if there are no grades in the report_card?
    • In this case, return a grade of 0.0

P-lan

Plan the solution with appropriate visualizations and pseudocode.

General Idea: Map each grade to a points total, then calculate the GPA (grade point average).

1) Create a reference dictionary that maps letter grades to points
2) If the report card is empty, return 0.0 early (to prevent division by zero)
3) Total points starts at 0
4) For each course in the report card:
  a) Find the corresponding points for the letter grade
  b) Add those points to the total
5) Calculate the average using the total points and # of courses
6) Return the GPA

⚠️ Common Mistakes

  • Be sure your code prevents accidental division by zero when the report_card is empty!

I-mplement

def report_card(report_card):
  # Mapping of letter grades to grade points
  grade_points = {"A": 4, "B": 3, "C": 2, "D": 1, "F": 0}
  
  # Check if the report_card dictionary is empty
  if not report_card:
      return 0.0
  
  total_points = 0
  
  # Calculate the total grade points
  for grade in report_card.values():
	  points = grade_points[grade]
	  total_points += points
  
  # Calculate the GPA
  gpa = total_points / len(report_card)
  
  return gpa