input: Write a function to print a formatted table of grades for a given set of students. Each student is represented as a dictionary containing 'name' and 'grade' keys. The function should align the names and grades for better readability.
  assert print_grade_table([{'name': "John", 'grade': 92}])==None
  assert print_grade_table([{'name': "Alice", 'grade': 95}, {'name': "Bob", 'grade': 87}])==None
  assert print_grade_table([{'name': "Charlie", 'grade': 88}, {'name': "Diana", 'grade': 91}, {'name': "Eve", 'grade': 83}])==None
  assert print_grade_table([{'name': "Frank", 'grade': 94}, {'name': "Grace", 'grade': 90}, {'name': "Hank", 'grade': 89}, {'name': "Ivy", 'grade': 93}])==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)
      for student in students:
          print(f"{student['name']:>{max_name_length}} | {student['grade']}")