Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #79079

Re: while loop - multiple condition

Newsgroups comp.lang.python
Date 2014-10-13 23:34 -0700
References (9 earlier) <20141013091248.1ffd94a0@rg.highlandtechnology.com> <ee40ce93-38e0-47ca-b41a-b76c9f84c8c4@googlegroups.com> <20141013094308.7d4ea20c@rg.highlandtechnology.com> <1b9fa5ce-45da-4aa8-a849-394a033e1c9d@googlegroups.com> <mailman.14837.1413238130.18130.python-list@python.org>
Message-ID <4359ed6d-b92f-4dde-8564-0742898b70a8@googlegroups.com> (permalink)
Subject Re: while loop - multiple condition
From wxjmfauth@gmail.com

Show all headers | View raw


Le mardi 14 octobre 2014 00:09:08 UTC+2, Michael Torrie a écrit :
> On 10/13/2014 11:12 AM, Rustom Mody wrote:
> 
> > On Monday, October 13, 2014 10:13:20 PM UTC+5:30, Rob Gaddi wrote:
> 
> >> On Mon, 13 Oct 2014 09:26:57 -0700 (PDT)
> 
> >> Rustom Mody  wrote:
> 
> > 
> 
> >>> On Monday, October 13, 2014 9:43:03 PM UTC+5:30, Rob Gaddi wrote:
> 
> >>>> On Mon, 13 Oct 2014 09:56:02 +1100
> 
> >>>> Steven D'Aprano  wrote:
> 
> >>>>> When you have multiple clauses in the condition, it's easier to reason about
> 
> >>>>> them if you write the clauses as positive statements rather than negative
> 
> >>>>> statements, that is, "something is true" rather than "something is not
> 
> >>>>> true", and then use `not` to reverse it if you want to loop *until* the
> 
> >>>>> overall condition is true.
> 
> >>>> I was just explaining this concept to a young pup the other day.  De
> 
> >>>> Morgan's lets you say that (not (p and q)) == ((not p) or (not q)), but
> 
> >>>> the positive logic flavor is substantially less error-prone.  People
> 
> >>>> are fundamentally not as good at thinking about inverted logic.
> 
> >>> Curious: Which of
> 
> >>> - (not (p and q))
> 
> >>> - ((not p) or (not q))
> 
> >>> is more positive (less negative)??
> 
> > 
> 
> >> The first is asking you to compare positive conditions (p and q) and
> 
> >> negate the entire thing (NAND).  The second asks you to think about
> 
> >> the combination of two different "not true" pieces of logic
> 
> >> (OR of two inverted inputs).  The first is pretty straightforward, and
> 
> >> I usually see people get it right.  The second gets screwed up as often
> 
> >> as not.
> 
> > 
> 
> >> And of course, any combination of ands and ors should be broken into
> 
> >> multiple statements with a descriptive variable name in the middle or
> 
> >> all hope is lost.
> 
> > 
> 
> > Yeah I guess 2 nots is one more than one!
> 
> > 
> 
> > However (to my eyes)
> 
> > while i < N  and  a[i] != X:
> 
> > 
> 
> > looks less negative than
> 
> > 
> 
> > while not (i==N or a[i] == X):
> 
> > 
> 
> > [Of course i < N is not identical to i != N ]
> 
> 
> 
> Right it should have been not (i >= N or a[i] == X) to be equivalent.
> 
> 
> 
> In assembler it's often best to reverse the condition and then use the
> 
> opposite jump mnemonic. IE, if the test is to see if a number not zero,
> 
> use the jump if zero command instead.  Often it reduces the number of
> 
> jumps required and eliminates the need to jump over the body of the "if"
> 
> block.
> 
> 
> 
> if a != 0 then jump to bigger
> 
> jump to end
> 
> bigger:
> 
> blah
> 
> blah
> 
> end:
> 
> 
> 
> vs
> 
> 
> 
> if a == 0 then jump to end
> 
> blah
> 
> blah
> 
> end:

On the side of logic.
Nothing can beat this mathematical absurdity (in the
logical sense of the term) called Flexible String
Representation.

Simply unbelievable.

jmf

Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: while loop - multiple condition Chris Angelico <rosuav@gmail.com> - 2014-10-13 05:03 +1100
  Re: while loop - multiple condition Marko Rauhamaa <marko@pacujo.net> - 2014-10-12 22:16 +0300
    Re: while loop - multiple condition Chris Angelico <rosuav@gmail.com> - 2014-10-13 06:22 +1100
    Re: while loop - multiple condition Tim Chase <python.list@tim.thechases.com> - 2014-10-12 15:42 -0500
      Re: while loop - multiple condition Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-10-13 09:56 +1100
        Re: while loop - multiple condition Rob Gaddi <rgaddi@technologyhighland.invalid> - 2014-10-13 09:12 -0700
          Re: while loop - multiple condition Rustom Mody <rustompmody@gmail.com> - 2014-10-13 09:26 -0700
            Re: while loop - multiple condition Rob Gaddi <rgaddi@technologyhighland.invalid> - 2014-10-13 09:43 -0700
              Re: while loop - multiple condition Rustom Mody <rustompmody@gmail.com> - 2014-10-13 10:12 -0700
                Re: while loop - multiple condition Michael Torrie <torriem@gmail.com> - 2014-10-13 16:08 -0600
                Re: while loop - multiple condition wxjmfauth@gmail.com - 2014-10-13 23:34 -0700
      Re: while loop - multiple condition giacomo boffi <pecore@pascolo.net> - 2014-10-15 01:04 +0200
        Re: while loop - multiple condition Chris Angelico <rosuav@gmail.com> - 2014-10-15 10:16 +1100

csiph-web