expected two blank lines pep8 warning in python
Question: I'm using vim editor as python IDE, below is a simple python program to
calculate square root of a number:-

    
    
    import cmath
    def sqrt():
        try:
            num = int(input("Enter the number : "))
            if num >= 0:
                main(num)
            else:
                complex(num)
        except:
            print("OOPS..!!Something went wrong, try again")
            sqrt()
        return
    
    def main(num):
        squareRoot = num**(1/2)
        print("The square Root of ", num, " is ", squareRoot)
        return
    
    def complex(num):
        ans = cmath.sqrt(num)
        print("The Square root if ", num, " is ", ans)
        return
    
    sqrt()
    

and the warnings are :-

    
    
    1-square-root.py|2 col 1 C| E302 expected 2 blank lines, found 0 [pep8]
    1-square-root.py|15 col 1 C| E302 expected 2 blank lines, found 1 [pep8]
    1-square-root.py|21 col 1 C| E302 expected 2 blank lines, found 0 [pep8]
    

Can you please tell why these warnings are coming?

[![enter image description
here](http://i.stack.imgur.com/m1Rlp.png)](http://i.stack.imgur.com/m1Rlp.png)


Answer: 
    import cmath
    
    
    def sqrt():
        try:
            num = int(input("Enter the number : "))
            if num >= 0:
                main(num)
            else:
                complex_num(num)
        except:
            print("OOPS..!!Something went wrong, try again")
            sqrt()
        return
    
    
    def main(num):
        square_root = num**(1/2)
        print("The square Root of ", num, " is ", square_root)
        return
    
    
    def complex_num(num):
        ans = cmath.sqrt(num)
        print("The Square root if ", num, " is ", ans)
        return
    
    sqrt()
    

The previous will fix your [PEP8](https://www.python.org/dev/peps/pep-0008/)
problems. After your import you need to have 2 new lines before starting your
code. Also, between each `def foo()` you need to have 2 as well.

In your case you had 0 after import, and you had 1 newline between each
function. Part of PEP8 you need to have a newline after the end of your code.
Unfortunately I don't know how to show it when I paste your code in here.

Pay attention to the naming, it's part of PEP8 as well. I changed `complex` to
`complex_num` to prevent confusion with builtin
[`complex`](https://docs.python.org/3.0/library/functions.html#complex).

In the end, they're only warning, they can be ignored if needed.

