Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #79079
| 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 |
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
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