Python Snippet PPP Q52

Raw Python Snippet (WIP)

from math import pow


class Complex:
    def __init__(self, real, imag):
        self.real = real
        self.imag = imag

    def __add__(self, other):
        return Complex(self.real+other.real, self.imag+other.imag)

    def __sub__(self, other):
        return Complex(self.real-other.real, self.imag-other.imag)

    def __mul__(self, other):
        return Complex(self.real*other.real-self.imag*other.imag, self.real*other.imag+self.imag*other.real)

    def __truediv__(self, other):
        try:
            return self.__mul__(Complex(other.real, -1*other.imag)).__mul__(complex(1.0/(other.mod().real)**2, 0))
        except ZeroDivisionError as e:
            print(e)
            return None

    def mod(self):
        return Complex(pow(self.real**2+self.imag**2, 0.5), 0)

    def __str__(self, precision=2):
        return str(("%."+"%df" % precision) % float(self.real))+('+' if self.imag >= 0 else '-')+str(("%."+"%df" % precision) % float(abs(self.imag)))+'i'




if __name__ == '__main__':
    c = map(float, input().split())
    d = map(float, input().split())
    x = Complex(*c)
    y = Complex(*d)
    print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n')