Couting the number of lines of code of a python program

chaouche yacine yacinechaouche at yahoo.com
Sat Jan 5 10:38:06 EST 2013


Sorry, I don't know what went wrong, here is another paste (hopefully this will work this time). If you prefer, this a link anchor to the function https://www.assembla.com/code/tahar/subversion/nodes/tahar.py?rev=8#ln340

def count_loc(lines):
    nb_lines  = 0
    docstring = False
    for line in lines:
        line = line.strip()

        if line == "" \
           or line.startswith("#") \
           or docstring and not (line.startswith('"""') or line.startswith("'''"))\
           or (line.startswith("'''") and line.endswith("'''") and len(line) >3)  \
           or (line.startswith('"""') and line.endswith('"""') and len(line) >3) :
            continue
        
        # this is either a starting or ending docstring
        elif line.startswith('"""') or line.startswith("'''"):
            docstring = not docstring
            continue

        else:
            nb_lines += 1

    return nb_lines





----- Original Message -----
From: Chris Angelico <rosuav at gmail.com>
To: python-list at python.org
Cc: 
Sent: Saturday, January 5, 2013 4:25 PM
Subject: Re: Couting the number of lines of code of a python program

On Sun, Jan 6, 2013 at 2:17 AM, chaouche yacine
<yacinechaouche at yahoo.com> wrote:
> defcount_loc(lines):nb_lines =0docstring =Falseforline inlines:line =line.strip()ifline ==""\ orline.startswith("#")\ ordocstring andnot(line.startswith('"""')orline.startswith("'''"))\ or(line.startswith("'''")andline.endswith("'''")andlen(line)>3)\ or(line.startswith('"""')andline.endswith('"""')andlen(line)>3):continue# this is either a starting or ending docstringelifline.startswith('"""')orline.startswith("'''"):docstring =notdocstring continueelse:nb_lines +=1returnnb_lines

Ow-what? Something's gone wrong with all your whitespace, I think...
can you paste again please?

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list