Path: csiph.com!usenet.pasdenom.info!gegeweb.org!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!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.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'operator': 0.03; 'languages.': 0.04; 'argument': 0.05; 'advocate': 0.07; 'compiler': 0.07; 'mixed': 0.09; 'modulo': 0.09; 'operator,': 0.09; 'part,': 0.09; 'whichever': 0.09; 'cc:addr:python-list': 0.11; 'jan': 0.12; 'assume': 0.14; 'language.': 0.14; 'changes': 0.15; '1:08': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'nesting': 0.16; 'precedence': 0.16; 'roy': 0.16; 'sane': 0.16; 'utterly': 0.16; 'language': 0.16; 'wrote:': 0.18; 'do.': 0.18; '(the': 0.22; 'cc:addr:python.org': 0.22; '31,': 0.24; 'stick': 0.24; 'cc:2**0': 0.24; 'sort': 0.25; 'mention': 0.26; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; 'am,': 0.29; 'strongly': 0.30; 'message-id:@mail.gmail.com': 0.30; 'code': 0.31; 'getting': 0.31; 'purely': 0.31; 'though.': 0.31; 'languages': 0.32; 'up.': 0.33; 'fri,': 0.33; 'table': 0.34; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'doing': 0.36; 'clear': 0.37; 'that,': 0.38; 'expect': 0.39; 'help,': 0.39; 'read': 0.60; 'everybody': 0.60; 'up,': 0.60; 'today.': 0.61; 'full': 0.61; 'simple': 0.61; "you're": 0.61; 'more': 0.64; 'smith': 0.68; 'article': 0.77; 'protect': 0.79; 'everything.': 0.84; 'or:': 0.84; 'tricky': 0.84; 'subject:True': 0.91; 'that),': 0.91; 'to:none': 0.92; 'differences': 0.93; 'insane': 0.93; 'technique': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=9hcrUX+RyeY8wpDqV10ayvmFvypKIxeWiACrconaqIc=; b=H55LQ23VzcxpGcexCej35iaROFB77weBr2mBR/wZBAdE5xGmRUqqVFfV4+IM+faCG/ qCqdvj8tUPqDGAQvqUobxGfyc8WsNKqNrMrBuAHHG8teDgweWFSTHv2LERsO4XrvqO+z 8vqGNdrD4CU3yXwx6c/Q+2DKT676YyaZXQfVSUSWMs1EP9gMAG8orHkzAfgtYe3/cpwh VckwJ8vQOE3n8YXxUQnw2PzJj0W4Gv5K5LBHn0VFHZYdJJFMsFRsgNIwO7B1KT0dCQce FF7fJ2+fJXFmUHJcPKtbykjzjHH0Lhf7YiSGV69GIgkauI+n6/A62NXEeZWJC/12EjKa FI4g== MIME-Version: 1.0 X-Received: by 10.66.160.2 with SMTP id xg2mr14670345pab.23.1391094141977; Thu, 30 Jan 2014 07:02:21 -0800 (PST) In-Reply-To: References: <99b0aa22-5fb3-460a-a080-dacb1c0f2fda@googlegroups.com> <3dcdc95d-5e30-46d3-b558-afedf9723c7c@googlegroups.com> Date: Fri, 31 Jan 2014 02:02:21 +1100 Subject: Re: 1 > 0 == True -> False From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 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: 42 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1391094150 news.xs4all.nl 2871 [2001:888:2000:d::a6]:45691 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:65016 On Fri, Jan 31, 2014 at 1:49 AM, Roy Smith wrote: > In article , > Chris Angelico wrote: > >> On Fri, Jan 31, 2014 at 1:08 AM, Roy Smith wrote: >> > Better than that, do what I do. >> > >> > 1) Assume that you don't have the full operator precedence table >> > memorized and just parenthesize everything. >> >> Or: >> >> 1a) Assume that you don't have the full operator precedence table >> memorized and just look it up, for whichever language you're working >> with today. :) > > It's faster to just stick in some extra parens. Not to mention that it > makes the code more clear for everybody reading it later. That won't protect you from getting modulo and truncating-division mixed up. :) > Operator precedence is a tricky thing. In part, because it's somewhat > arbitrary, and in part because it changes from language to language. > Using "extra" parens to make my meaning clear (to both the compiler and > other humans who read the code in the future) is a simple technique > which works in all languages. It's not arbitrary, but there are differences from language to language. Yes, parens can help, but I would strongly advocate NOT using them where it's utterly unambiguous: x = (2*3)+4 # Pointless! Whether your language works with * before + (the sane way, doing what we expect from algebra) or purely left to right (the insane way, but some languages do do that), the parens are superfluous. Don't use 'em! But if you work with both PHP and any other language that has a ?: operator, parenthesizing any nesting of them will avoid a PHP stupidity. Not that that's really any sort of argument here, though. ChrisA