title: I do not get how to get displayGPA() cleanly handle a ZeroDivisionError
body: <pre><code>#!/usr/bin/env python3
  
  class Student:
      def __init__(self, name, number):
          self.name = name
          self.number = number
          self.courses = {}
  
      def displayStudent(self):
          return 'Student Name: ' + self.name + '\n' + 'Student Number: ' + str(self.number)
  
      def addGrade(self, course, grade):
          self.courses[course] = grade
  
      def displayGPA(self):
          if len(self.courses) == 0:
              errormsg  = print('Wrong Input')
              return errormsg
  
          else:
              gpa = 0.0
              for course in self.courses.keys():
                  gpa = gpa + self.courses[course]
              return 'GPA of student ' + self.name + ' is ' + str(gpa / len(self.courses))
  
  
      def displayCourses(self):
          return [k for k in self.courses.keys() if self.courses[k] &gt; 0]
  
  
  if __name__ == '__main__':
      # Create first student object and add grades for each class
      student1 = Student('John', '013454900')
      student1.addGrade('uli101', 1.0)
      student1.addGrade('ops235', 2.0)
      student1.addGrade('ops435', 3.0)
  
      # Create second student object and add grades for each class
      student2 = Student('Jessica', '123456')
      student2.addGrade('ipc144', 4.0)
      student2.addGrade('cpp244', 3.5)
      student2.addGrade('cpp344', 0.0)
  
      # Display information for student1 object
      print(student1.displayStudent())
      print(student1.displayGPA())
      print(student1.displayCourses())
  
      # Display information for student2 object
      print(student2.displayStudent())
      print(student2.displayGPA())
      print(student2.displayCourses())
  </code></pre>
  
  <p>Problem is in <code>displayGPA()</code> may divide by zero (<code>ZeroDivisionError</code>) if no courses are added to the dictionary or the grades added to the dictionary are <code>0.0</code> floats.</p>