input: from typing import List
  
  def create_vector_3d(components: List[float]) -> str:
      """ Given a list of three components representing x, y, and z, 
      this function creates a Vector3D object and returns its string representation.
      >>> create_vector_3d([1.0, 2.0, 3.0])
      '(1.0, 2.0, 3.0)'
      >>> create_vector_3d([0, 0, 0])
      '(0, 0, 0)'
      """
      class Vector3D:
          def __init__(self, x, y, z):
              self.x = x
              self.y = y
              self.z = z
          
          def __str__(self):
              return "(" + str(self.x) + ", " + str(self.y) + ", " + str(self.z) + ")"
      
      if len(components) != 3:
          raise ValueError("Exactly three components are required")
      return str(Vector3D(components[0], components[1], components[2]))
output:     class Vector3D:
          def __init__(self, x, y, z):
              self.x = x
              self.y = y
              self.z = z
          
          def __str__(self):
              return "(" + str(self.x) + ", " + str(self.y) + ", " + str(self.z) + ")"
      
      if len(components) != 3:
          raise ValueError("Exactly three components are required")
      return str(Vector3D(components[0], components[1], components[2]))