How to properly print the output str
class Complex(object):
    def __init__(self, real, imaginary):
        self.real = real
        self.imaginary = imaginary
    def __add__(self, other):
        return Complex(self.real+other.real, self.imaginary+other.imaginary)
    def __sub__(self, other):
        return Complex(self.real-other.real, self.imaginary-other.imaginary)
    def __str__(self):
        return '{} & {}i'.format(self.real, self.imaginary)
if __name__ == '__main__':
    c = map(float, input().split())
    d = map(float, input().split())
    x = Complex(*c)
    #print (x)
    y = Complex(*d)
    #print (y)
    print(*map(str, [x+y, x-y]), sep='\n')
Input
2 1
5 6
Output
7.0 & 7.0i
-3.0 & -5.0i
Expected out if for addtion it should print + and for substraction it should print -
7.00+7.00i
-3.00-5.00i
 
     
    