input: Write a function to print a formatted table of grades for a given set of students. The function should take a list of dictionaries where each dictionary represents a student with keys 'name' and 'grade'. The function should print a table with the names aligned to the left and grades aligned to the right with proper spacing.
  
  def print_grade_table(students):
      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}])
  assert print_grade_table([])
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))