Skip to content Skip to sidebar Skip to footer

Expected Two Blank Lines Pep8 Warning In Python

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 numb

Solution 1:

import cmath


defsqrt():
    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()
    returndefmain(num):
    square_root = num**(1/2)
    print("The square Root of ", num, " is ", square_root)
    returndefcomplex_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.

Solution 2:

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

These include (for example):

  • The import block
  • Each function

Solution 3:

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


defsqrt():
    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()
    returndefmain(num):
    square_root = num ** (1 / 2)
    print("The square Root of ", num, " is ", square_root)
    returndefcomplex_num(num):
    ans = cmath.sqrt(num)
    print("The Square root if ", num, " is ", ans)
    return


sqrt()

Solution 4:

with warnings:-  
import math  
defmy():  
    print("hello world")  
my()

Without warnings:-  
import math 


defmy():  
    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.

Solution 5:

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


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


sqrt()

PS: have a look at if __name__ == "__main__":

Post a Comment for "Expected Two Blank Lines Pep8 Warning In Python"