input: Write a function to perform matrix multiplication on two given matrices. Return the resulting matrix after multiplication. If the number of columns in the first matrix is not equal to the number of rows in the second matrix, raise a ValueError.
  assert matrix_multiplication([[1, 2], [3, 4]], [[2, 0], [1, 2]]) == [[4, 4], [10, 8]]
  assert matrix_multiplication([[1, 2, 3], [4, 5, 6]], [[7, 8], [9, 10], [11, 12]]) == [[58, 64], [139, 154]]
  try:
      matrix_multiplication([[1, 2], [3, 4]], [[5, 6]])
  except ValueError:
      pass
  else:
      raise AssertionError("Expected a ValueError to be raised")
output: def matrix_multiplication(A, B):
      if len(A[0]) != len(B):
          raise ValueError
      result = [[0 for _ in range(len(B[0]))] for _ in range(len(A))]
      for i in range(len(A)):
          for j in range(len(B[0])):
              for k in range(len(B)):
                  result[i][j] += A[i][k] * B[k][j]
      return result