Q:

Python SyntaxError :'return' outside function

Compiler showed:
File "temp.py", line 56
    return result
SyntaxError: 'return' outside function

Where was I wrong?
class Complex (object):
    def __init__(self, realPart, imagPart):
        self.realPart = realPart
        self.imagPart = imagPart            

    def __str__(self):
        if type(self.realPart) == int and type(self.imagPart) == int:
            if self.imagPart >=0:
                return '%d+%di'%(self.realPart, self.imagPart)
            elif self.imagPart <0:
                return '%d%di'%(self.realPart, self.imagPart)   
    else:
        if self.imagPart >=0:
                return '%f+%fi'%(self.realPart, self.imagPart)
            elif self.imagPart <0:
                return '%f%fi'%(self.realPart, self.imagPart)

        def __div__(self, other):
            r1 = self.realPart
            i1 = self.imagPart
            r2 = other.realPart
            i2 = other.imagPart
            resultR = float(float(r1*r2+i1*i2)/float(r2*r2+i2*i2))
            resultI = float(float(r2*i1-r1*i2)/float(r2*r2+i2*i2))
            result = Complex(resultR, resultI)
            return result

c1 = Complex(2,3)
c2 = Complex(1,4)
print c1/c2

What about this?
class Complex (object):
    def __init__(self, realPart, imagPart):
        self.realPart = realPart
        self.imagPart = imagPart            

    def __str__(self):
        if type(self.realPart) == int and type(self.imagPart) == int:
            if self.imagPart >=0:
                return '%d+%di'%(self.realPart, self.imagPart)
            elif self.imagPart <0:
                return '%d%di'%(self.realPart, self.imagPart)
        else:
            if self.imagPart >=0:
                return '%f+%fi'%(self.realPart, self.imagPart)
            elif self.imagPart <0:
                return '%f%fi'%(self.realPart, self.imagPart)

    def __div__(self, other):
        r1 = self.realPart
        i1 = self.imagPart
        r2 = other.realPart
        i2 = other.imagPart
        resultR = float(float(r1*r2+i1*i2)/float(r2*r2+i2*i2))
        resultI = float(float(r2*i1-r1*i2)/float(r2*r2+i2*i2))
        result = Complex(resultR, resultI)
        return result

c1 = Complex(2,3)
c2 = Complex(1,4)
print c1/c2

A:

I would check my indentation, it looks off. Are you possibly mixing tabs and spaces? The PEP8 (Python Style Guide) recommends using 4 spaces only. Unlike other languages, whitepace makes a big difference in Python, so consistency is important.
The above also makes the following recommendation:

When invoking the Python command line interpreter with the -t option,
  it issues warnings about code that illegally mixes tabs and spaces.
  When using -tt these warnings become errors. These options are highly
  recommended!

In particular, your 2nd else seems to be off (probably should be indented), and  this method def __div__(self, other): too (which I would think ought to be at the same level as your other defs - i.e., moved "out" rather than indented).
Problems mixing tabs/blanks are easy to have since both characters are "invisible".

A:

Make sure your __div__ is declared at the same level as your __str__ (right now, it's declared inside the __str_).

A:

By my copy and paste, everything from this line:
else:
if self.imagPart >=0:
        return '%f+%fi'%(self.realPart, self.imagPart)
elif self.imagPart <0: # Everything under here..

To this line:
    resultI = float(float(r2*i1-r1*i2)/float(r2*r2+i2*i2))
result = Complex(resultR, resultI)
return result # Needs to be unindented.

has wrong indenting.

