Each Answer to this Q is separated by one/two green lines.

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?

```
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 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`

.

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

You need to give two blank lines between meaningful code blocks.

These include (for example):

- The import block
- Each function

Here is the link to the documentation:

PEP8 Style Guide for Python

You should add two spaces between the functions, as shown below:

```
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()
```

```
with warnings:-
import math
def my():
print("hello world")
my()
Without warnings:-
import math
def my():
print("hello world")
my()
```

Here if you see the two lines space after import statement for second code snippet which will not give any warnings.

Again if you are writing two methods definition you have two give two lines as space between your code block.

All answers seem to be correct. To avoid doing this by hand, you can also use the `autopep8`

package (pip install autopep8). The result of calling `autopep8 filename.py`

is the same:

```
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()
```