def __str__(self):
        """ String representation of Cubic Polynomial Equation"""
        
        try:
            self.c1 = Cubic.syntheticDivision(self)[0]
            self.c2 = Cubic.syntheticDivision(self)[1]
            if self.c1 == float and self.c2 == float:
                self.c3 ="-"
                self.c4 ="+"
            else :
                self.c3 = self._checkSign(float(Cubic.syntheticDivision(self)[0])*-1)
                self.c4 = self._checkSign(float(Cubic.syntheticDivision(self)[1])*-1)
                

            if self.__d == 0:
                return "\n<Cubic Equation: p(x) = %sx%s %s %sx%s %s %sx = 0 \n \
                        \n<The linear factorization : p(x) = %sx(x%s%s)(x%s%s) \n\
                        " % (self.__a,chr(252),self.signb,self.__b,chr(253),
                        self.signc,self.__c,self.__a,self.c3,-1*float(self.c1),
                        self.c4,-1*float(self.c2))
        
            else :
                if self.__a == 1:
                    for i in Cubic.integerZero(self):
                        if (((self.__a*(i**3)) + (self.__b*(i**2))+ (self.__c*i )+ self.__d == 0)
                            and float(i) != float(self.c2) and float(i) != float(self.c1)):
                            return "\n<Cubic Equation: p(x) = %sx%s %s %sx%s %s %sx %s %s = 0 \
                                    \n\n<The integers zeros  are :\n\n%s\n \
                                    \n<The linear factorization : p(x) = (x%s%s)(x%s%s)(x%s%s) \n\
                                    " % (self.__a,chr(252),self.signb,self.__b,chr(253),self.signc,
                                    self.__c,self.signd,self.__d,Cubic.integerZero(self),self.c3,
                                    -1*float(self.c1),self.c4,-1*float(self.c2),(self._checkSign(-1*i)),-1*i)
                       
                    return "\n<None of the integers zeros %s \n\n checks p(x) = %sx%s %s %sx%s %s %sx %s %s = 0\n\n " \
                            % (Cubic.integerZero(self),self.__a,chr(252),self.signb,self.__b,chr(253),self.signc,self.__c,
                                self.signd,self.__d)
        
                else :
                    for j in Cubic.nonintegersRationalZero(self)[1]:
                        if ((self.__a*(float(str(j))**3)) + (self.__b*(float(str(j))**2))+
                            (self.__c*float(str(j)) )+ self.__d == 0.00):
                            return "\n<Cubic Equation: p(x) = %sx%s %s %sx%s %s %sx %s %s = 0 \
                                \n\n<The integers Zeros are :\n\n %s \
                                \n\n<The nonintegers Rational Zeros are :\n\n %s \
                                \n<The linear factorization : p(x) = (x%s%s)(x%s%s)(x%s%s) \n\
                                " % (self.__a,chr(252),self.signb,self.__b,chr(253),self.signc,self.__c,
                                self.signd,self.__d,Cubic.integerZero(self),nonintegersRationalZero(self)[0],
                                self.c3,-1*float(self.c1),self.c4,-1*float(self.c2),(self._checkSign(-1*j)),-1*j)
                        
                    return "\n<None of the non integers zeros %s \n\n checks p(x) = %sx%s %s %sx%s %s %sx %s %s  = 0\n\n" \
                             % (Cubic.nonintegersRationalZero(self)[0],self.__a,chr(252),self.signb,self.__b,
                                chr(253),self.signc,self.__c,self.signd,self.__d)
        except TypeError:
            if self.__a == 1:
                 raise "\n<complex solutions \n\n<The integers zeros are %s " \
                  % Cubic.integerZero(self)
            else :   
                raise "\n<complex solutions \n\n<The nonintegers zeros are %s " \
                  % Cubic.nonintegersRationalZero(self)[0]
 String representation of Cubic Polynomial Equation
recipes/Python/576608_Cubic/recipe-576608.py