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 contains 'name' and 'grade' keys. The output should align the names and grades in a clean table format.
  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))
  
  students1 = [
      {'name': "John", 'grade': 92},
      {'name': "Alice", 'grade': 95},
      {'name': "Bob", 'grade': 87}
  ]
  
  students2 = [
      {'name': "Jane", 'grade': 88},
      {'name': "Tom", 'grade': 90},
      {'name': "Sam", 'grade': 93}
  ]
  
  print_grade_table(students1)
  print_grade_table(students2)
  
  Test Output:
  Name    Grade
  ------ ------
  John      92
  Alice     95
  Bob       87
  Name    Grade
  ------ ------
  Jane      88
  Tom       90
  Sam       93
output: 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))