input: Write a function to print a formatted table of grades for a given set of students. The function should format the table such that the names are left-aligned and the grades are right-aligned. The function should also include a header with the labels "Name" and "Grade". If the list of students is empty, the function should print nothing.
  
  def print_grade_table(students):
      if not students: return
      max_name_length = max(len(student['name']) for student in students)
      line_template = "{{name:<{max_name_length}}}   {{grade}}".format(max_name_length=max_name_length)
      header = line_template.format(name='Name', grade='Grade')
      sep = '-' * len(header)
      print(header)
      print(sep)
      for student in students:
          print(line_template.format(**student))
  
  assert print_grade_table([{'name': "John", 'grade': 92}, {'name': "Alice", 'grade': 95}, {'name': "Bob", 'grade': 87}]) == None
  assert print_grade_table([]) == None
output: def print_grade_table(students):
      if not students: return
      max_name_length = max(len(student['name']) for student in students)
      line_template = "{{name:<{max_name_length}}}   {{grade}}".format(max_name_length=max_name_length)
      header = line_template.format(name='Name', grade='Grade')
      sep = '-' * len(header)
      print(header)
      print(sep)
      for student in students:
          print(line_template.format(**student))