input: Write a function to print a formatted table of grades for a given set of students. The students are represented as a list of dictionaries, where each dictionary contains 'name' and 'grade' keys. The function should adjust the column width to fit the longest student name. If the input list is empty, the function should print nothing.
  
  def print_grade_table(students):
      if 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}]) is None
  assert print_grade_table([]) is None
output: def print_grade_table(students):
      if 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))