input: Write a function to explain the difference between a ``list`` and a ``tuple`` in Python. If the input is a list, return a string describing that a list is mutable, has square brackets, and is used when the data needs to be changed. If the input is a tuple, return a string describing that a tuple is immutable, has parentheses, and is used when the data is fixed. If the input is neither a list nor a tuple, return a message stating that the input is not a list or a tuple.
  assert compare_types([1, 2, 3]) == "A list is mutable, has square brackets, and is used when the data needs to be changed."
  assert compare_types((1, 2, 3)) == "A tuple is immutable, has parentheses, and is used when the data is fixed."
  assert compare_types("string") == "The input is not a list or a tuple."
  assert compare_types({1, 2, 3}) == "The input is not a list or a tuple."
output: def compare_types(input_data):
      if isinstance(input_data, list):
          return "A list is mutable, has square brackets, and is used when the data needs to be changed."
      elif isinstance(input_data, tuple):
          return "A tuple is immutable, has parentheses, and is used when the data is fixed."
      else:
          return "The input is not a list or a tuple."