Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!eternal-september.org!feeder.eternal-september.org!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.014 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'python.': 0.02; 'else:': 0.03; 'subject:Python': 0.06; 'perl,': 0.07; 'line:': 0.09; 'spaces': 0.09; 'python': 0.11; 'def': 0.12; 'attempted': 0.16; 'perl.': 0.16; 'rather,': 0.16; 'set()': 0.16; 'thread,': 0.16; 'weight,': 0.16; 'language': 0.16; 'wrote:': 0.18; "python's": 0.19; 'example': 0.22; 'programming': 0.22; 'rules': 0.22; 'saying': 0.22; 'aspect': 0.24; 'mon,': 0.24; 'header:In-Reply- To:1': 0.27; 'function': 0.29; 'am,': 0.29; 'raise': 0.29; 'start,': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'code': 0.31; 'lines': 0.31; "skip:' 10": 0.31; 'towards': 0.31; 'indentation': 0.31; 'perl': 0.31; 'run': 0.32; 'comment': 0.34; 'maybe': 0.34; 'beyond': 0.35; 'point.': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'should': 0.36; 'too': 0.37; 'step': 0.37; 'to:addr:python-list': 0.38; 'aspects': 0.39; 'weight': 0.39; 'to:addr:python.org': 0.39; 'how': 0.40; 'even': 0.60; 'above,': 0.60; 'blank': 0.60; 'removing': 0.60; 'new': 0.61; 'refer': 0.63; 'more': 0.64; 'taking': 0.65; 'talking': 0.65; '20,': 0.68; 'line,': 0.68; 'subject:there': 0.68; 'caused': 0.69; 'to,': 0.72; 'cost,': 0.84; 'draws': 0.84; 'kennedy': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; bh=WXc+OXetvUgHu6ywCFD+tpodl/7Gfbp9Lo744DQgotE=; b=yhSXsP4/Oq2kIjgR3dMlKGWFTkvHgXrd6kMwmM76wUD7EtKTrcgvQ1OifDUMLr4aHH y6kHo/5TMigLiBuIyvcox46Pb+tJdBZ+giMI9fbhyndD+h3cCx8mH3ss1KD3B7fM7Ny/ qjh5OueQbYeXTa9Bfh8FcFxwCqaTQqxIBuAkcmSxG6r/wVktyul1IO3q1zfo7gIIFcxx 7To/aI+fcU/cNhjKLJWUMLgb17nVaIBQLeh+tyqgyjXoaQC4gLcqZs90MrdMds7v+RyQ HO7H5sgyR1qEkPEHlmysLvBV7YUqbxte8kj03SCtLs9C4UdCH29Hp8/RGH5aNfIkC1Ye 8M+g== X-Received: by 10.70.65.68 with SMTP id v4mr3820121pds.156.1413827706200; Mon, 20 Oct 2014 10:55:06 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <9a0c67be-de3a-4770-bf06-e158783bfff0@googlegroups.com> <54424691$0$12978$c3e8da3$5496439d@news.astraweb.com> From: Ian Kelly Date: Mon, 20 Oct 2014 11:54:25 -0600 Subject: Re: Is there an easy way to control indents in Python To: Python Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 48 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1413827716 news.xs4all.nl 2937 [2001:888:2000:d::a6]:44749 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:79318 On Mon, Oct 20, 2014 at 9:54 AM, Simon Kennedy wrote: > Not having ever attempted to go beyond even the basics of Perl, the aspec= t that causes me to refer to Perl 'dismissively' as well comment in this th= read, is that I don't find Perl to be an aesthetically pleasing language an= d I consider Python functions which have no blank lines in them to be a sma= ll step towards Perl. > > Some people do not like Python's indentation rules but for me it's a larg= e part of what draws me to program in Python. Spaces for indentation and bl= ank lines are both aspects of how I like to program. > > I write in Python because I like to, not because I have to. > > I think the only reason I might code a function with no blank lines was i= f I was programming in a language that using blank lines caused it to run t= oo slowly. So to be clear, I'm not talking about taking a function like this (contrived) example and just removing the blank line: def find_path(graphdata, start, end): edges =3D map(str.split, lines) graph =3D collections.defaultdict(list) for node1, node2, weight in edges: graph[node1].append((node[2], int(weight))) graph[node2].append((node[1], int(weight))) open_heap =3D [(0, (start,))] closed_set =3D set() while open_heap: cost, path =3D heapq.heappop(open_heap) current_node =3D path[-1] if current_node =3D=3D end: return path if current_node in closed_set: continue for next_node, weight in graph[current_node]: heapq.heappush((cost + weight, path + (next_node,))) closed_set.add(current_node) else: raise ValueError("No path from start to end") Rather, I'm saying that where the blank line is should be the start of a new function. There would still be a blank line, just no longer inside the function. Now, maybe you think there should be more blank lines in the above, in which case we'll just have to disagree on that point.