input: Write a function to format a two-dimensional array as a table. The function should find the longest string in each column and format the output accordingly. If a column has multiple elements, it should use the maximum length of the string representations of those elements. The function should print the table row by row. If the input array is empty, the function should print an empty line.
  
  def printTable(array):
      if not array:
          print()
          return
      col_widths = [max(len(str(x)) for x in col) for col in zip(*array)]
      for row in array:
          print("  ".join(str(x).ljust(col_widths[i]) for i, x in enumerate(row)))
  
  array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  printTable(array)
  
  assert printTable([[1, 2, 3], [4, 5, 6], [7, 8, 9]])==None
  assert printTable([[123, 456, 789], [10, 20, 30], [1234, 567, 89]])==None
  assert printTable([])==None
output: def printTable(array):
      if not array:
          print()
          return
      col_widths = [max(len(str(x)) for x in col) for col in zip(*array)]
      for row in array:
          print("  ".join(str(x).ljust(col_widths[i]) for i, x in enumerate(row)))