Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PyCharm shows "PEP8: expected 2 blank lines, found 1"

Consider the following code:

def add_function(a, b):
    c = str(a) + b
    print "c is %s" % c

def add_int_function(c, d):
    e = c + d
    print "the vaule of e is %d" % e

if __name__ =="__main__":
    add_function(59906, 'kugrt5')
    add_int_function(1, 2)

It always shows me: "expected 2 blank lines ,found 1" in aadd_int_function, but not in the add_function.

When I add two spaces in front of the def add_int_function(c, d): there is a error shows unindent does not match any outer indentation level in the end of add_function:

enter image description here

enter image description here

like image 468
march_seven Avatar asked Oct 27 '16 03:10

march_seven


3 Answers

Just add another line between your function definitions :

1 line :

enter image description here

2 lines:

enter image description here

like image 126
Kennet Celeste Avatar answered Nov 12 '22 13:11

Kennet Celeste


This is a pretty common question within the python community. After the release of PEP 8, new formatting styles were accepted into python. One of them states that after the definition of a class or function there must be two lines separating them. As such:

    def yadayada:
     print("two lines between the functions")


    def secondyadayada:
     print("this is the proper formatting")

So, you should never do it like:

    def yadayada:
     print("two lines between the functions")

    def secondyadayada:
     print("this is the proper formatting")

Or else PyCharm will throw that error at you.

like image 32
shreyshrey Avatar answered Nov 12 '22 15:11

shreyshrey


For people who wonders why it requires two blank lines

if you were to write in other languages it would be:

fun doSth() {
    print()
}

fun doSth1() {
    print()
}

but if you were to delete all the curly braces from the code you will see:

two blank lines between methods

fun doSth()
    print()
#
#
fun doSth1()
    print()
#
like image 1
adwardwo1f Avatar answered Nov 12 '22 15:11

adwardwo1f