On Mon, Jul 5, 2010 at 04:54, Walter Prins <wpr...@gmail.com> wrote: > > > On 5 July 2010 08:27, Richard D. Moores <rdmoo...@gmail.com> wrote: >> >> See >> <http://docs.python.org/py3k/library/stdtypes.html#boolean-operations-and-or-not>. >> I am quite familiar with the meaning of "x and y" in Python, and how >> it is evaluated -- first x, and only if x is False, then evaluate y. > > Sorry if this is being overly pedantic, but I thought I'd point out the > above isn't right as stated, although I understand what you're getting at > (re short circuit boolean evaluation) in general. To be correct, I presume > you meant "OR" where you wrote "AND", as it would be correct in that case
Yes, my careless mistake. Instead of "first x, and only if x is False, then evaluate y" I should have written "first x, and only if x is True, then evaluate y", right? > e.g: > > x AND y: Will only evaluate y if x is TRUE. (If x is FALSE then you don't > need to evaluate y since the resultant expression will be FALSE regardless, > see footnote 2 in the page you referenced.) > > x OR y: Will only evaluate y if x is FALSE. (If x is TRUE then you don't > need to evaluate y since the resultant expression will be TRUE regardless, > see footnote 1 in the page you referenced.) > > See e.g. output of this. > > So then, to explain this line from the page you reference: x and y: "if x > is false, then x, else y" > > Think about it: As per the above, if x is false, then because it's false, > Python need only and will only evaluate x, and will therefore essentially > return whatever "x" is when evaluating the expression. If x is true on the > other hand, then by the above rules, it has to *also* evaluate y as well, > and so will end up effectively returning whatever y returns as it determines > what the truth value of the overall expression is. Shortening that > reasoning, you can say, "if x is false, then x, else y". See? (The same > sort of reasoning applies for the "or" case if you think it out.) > > Hope that helps. Wow, it did! Especially that last big paragraph. Thanks, Walter! Dick --------------- CAUTION: Dynamic Inertial Balance _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor