input: Write a function named create_complex_number that accepts two parameters, real and imaginary, representing the real and imaginary parts of a complex number respectively. The function should return an instance of a class ComplexNumber that has an __init__ method to initialize these attributes and a __str__ method to return the complex number in the format "(real + imaginary i)" where real and imaginary are the values of the respective attributes.
  assert str(create_complex_number(3, 4))=="(3 + 4i)"
  assert str(create_complex_number(0, 0))=="(0 + 0i)"
  assert str(create_complex_number(-1, 5))=="(-1 + 5i)"
  assert str(create_complex_number(2, -3))=="(2 + -3i)"
  assert str(create_complex_number(-2, -3))=="(-2 + -3i)"
output: class ComplexNumber:
      def __init__(self, real, imaginary):
          self.real = real
          self.imaginary = imaginary
  
      def __str__(self):
          return f"({self.real} + {self.imaginary}i)"
  
  def create_complex_number(real, imaginary):
      return ComplexNumber(real, imaginary)