Re: checking if two things do not equal None

2014-03-31 Thread Moritz Emanuel Beber
On 31/03/14 19:28, Abe wrote: I couldn't see anyone else give this, but I like if None not in (a, b): I did. I am now considering: if None not in (a,b): or if (a is not None) and (b is not None): That's just if not (a is None or b is None): but you seem to have found your way. However, I

Re: checking if two things do not equal None

2014-03-31 Thread Abe
> I couldn't see anyone else give this, but I like > if None not in (a, b): I did. > I am now considering: > if None not in (a,b): > or > if (a is not None) and (b is not None): However, I decided to just turn the two parameters into one (sequence), since they were logically grouped anyhow.

Re: checking if two things do not equal None

2014-03-31 Thread Jeremy Sanders
contact.tri...@gmail.com wrote: > if (a, b) != (None, None): > or > if a != None != b: > > Preference? Pros? Cons? Alternatives? I couldn't see anyone else give this, but I like if None not in (a, b): pass Jeremy -- https://mail.python.org/mailman/listinfo/python-list

Re: checking if two things do not equal None

2014-03-30 Thread Gregory Ewing
Roy Smith wrote: Adding to the confusion, many designs would use "active low" logic, which means a 1 was represented by a low voltage, and a 0 by a high voltage. So, you quickly end up with gibberish like, "not active low clear nand not active low enable clock". There are ways of dealing wi

Re: checking if two things do not equal None

2014-03-30 Thread MRAB
On 2014-03-30 13:21, Roy Smith wrote: In article <5337b4e4$0$29994$c3e8da3$54964...@news.astraweb.com>, Steven D'Aprano wrote: I think Johannes got it right: boolean logic is easier to reason about when there is a minimum of "not"s. I used to do a lot of digital logic design. In certain l

Re: checking if two things do not equal None

2014-03-30 Thread Roy Smith
In article <5337b4e4$0$29994$c3e8da3$54964...@news.astraweb.com>, Steven D'Aprano wrote: > I think Johannes got it right: boolean logic is easier to reason about > when there is a minimum of "not"s. I used to do a lot of digital logic design. In certain logic families, it's easier to build a

Re: checking if two things do not equal None

2014-03-30 Thread Marko Rauhamaa
Gregory Ewing : > a != b != c > > does *not* imply that a != c. At least it doesn't in Python; I've > never seen any mathematicians write that, so I don't know what they > would make of it. Any resemblance between mathematics notation and Python is purely coincidental. I must admit I had missed

Re: checking if two things do not equal None

2014-03-30 Thread Chris Angelico
On Sun, Mar 30, 2014 at 5:52 PM, Ben Finney wrote: > Chris Angelico writes: > >> The problem isn't that I can't see what the comparisons are. It makes >> very good sense to bound a variable within constants; but you already >> know exactly where 2 is on the number line, so asking "Is 2 between >>

Re: checking if two things do not equal None

2014-03-29 Thread Ben Finney
Chris Angelico writes: > The problem isn't that I can't see what the comparisons are. It makes > very good sense to bound a variable within constants; but you already > know exactly where 2 is on the number line, so asking "Is 2 between > these two variables" seems a bit odd. Maybe it's less so w

Re: checking if two things do not equal None

2014-03-29 Thread Gregory Ewing
Roy Smith wrote: But, if you show me a != None != b: my brain just goes into overload. Chained comparisons get weird with not-equal operators. If you see a == b == c then it implies that a == c, but a != b != c does *not* imply that a != c. At least it doesn't in Python; I've never s

Re: checking if two things do not equal None

2014-03-29 Thread Chris Angelico
On Sun, Mar 30, 2014 at 4:54 PM, Steven D'Aprano wrote: > On Sun, 30 Mar 2014 13:15:18 +1100, Chris Angelico wrote: > >> Chained comparisons where you're checking a single variable against two >> constants make perfect sense: >> >> 2 < x < 5 >> >> Chained comparisons where you check a single const

Re: checking if two things do not equal None

2014-03-29 Thread Steven D'Aprano
On Sat, 29 Mar 2014 19:54:09 -0700, Rustom Mody wrote: > On Sunday, March 30, 2014 8:09:45 AM UTC+5:30, Roy Smith wrote: >> I have no particular problem with > >> x < 2 < y > >> because it fits the same pattern. But, if you show me > >> a != None != b: > >> my brain just goes into overload.

Re: checking if two things do not equal None

2014-03-29 Thread Steven D'Aprano
On Sun, 30 Mar 2014 13:15:18 +1100, Chris Angelico wrote: > On Sun, Mar 30, 2014 at 1:04 PM, Steven D'Aprano > wrote: >> On Sat, 29 Mar 2014 17:07:20 -0400, Roy Smith wrote: >> >>> I certainly agree that things like >>> if a is not b is not None: ... >>> >>> belong in an obfuscated coding co

Re: checking if two things do not equal None

2014-03-29 Thread Zachary Ware
On March 29, 2014 9:43:00 PM CDT, Roy Smith wrote: >In article <5337807b$0$29994$c3e8da3$54964...@news.astraweb.com>, > Steven D'Aprano wrote: > >> a is b is c is None > >And we are all together. See how they run like pigs from a gun, see >how >they fly. I'm cryin'. (Really, that was terrib

Re: checking if two things do not equal None

2014-03-29 Thread Rustom Mody
On Sunday, March 30, 2014 8:09:45 AM UTC+5:30, Roy Smith wrote: > I have no particular problem with > x < 2 < y > because it fits the same pattern. But, if you show me > a != None != b: > my brain just goes into overload. Honestly, I don't even know what that > means. My brain keeps tryin

Re: checking if two things do not equal None

2014-03-29 Thread Roy Smith
In article <5337807b$0$29994$c3e8da3$54964...@news.astraweb.com>, Steven D'Aprano wrote: > a is b is c is None And we are all together. See how they run like pigs from a gun, see how they fly. -- https://mail.python.org/mailman/listinfo/python-list

Re: checking if two things do not equal None

2014-03-29 Thread Roy Smith
In article , Chris Angelico wrote: > Chained comparisons where you're checking a single variable against > two constants make perfect sense: > > 2 < x < 5 > > Chained comparisons where you check a single constant against two > variables don't, so much: > > x < 2 < y To me, chained comparison

Re: checking if two things do not equal None

2014-03-29 Thread Steven D'Aprano
On Sat, 29 Mar 2014 17:36:55 -0500, Tim Chase wrote: > And for cases where you have more than one or two things to test for > None-itude, you could use > > if all(x is None for x in [a, b, c, d]): > do_something_if_theyre_all_None() > > or > > if all(x is not None for x in [a, b, c, d])

Re: checking if two things do not equal None

2014-03-29 Thread Chris Angelico
On Sun, Mar 30, 2014 at 1:04 PM, Steven D'Aprano wrote: > On Sat, 29 Mar 2014 17:07:20 -0400, Roy Smith wrote: > >> I certainly agree that things like >> >>> if a is not b is not None: ... >> >> belong in an obfuscated coding contest. > > Apart from the fact that I got it wrong (that's what happen

Re: checking if two things do not equal None

2014-03-29 Thread Steven D'Aprano
On Sat, 29 Mar 2014 17:07:20 -0400, Roy Smith wrote: > I certainly agree that things like > >> if a is not b is not None: ... > > belong in an obfuscated coding contest. Apart from the fact that I got it wrong (that's what happens when I post at 6am after being up all night, thanks for the co

Re: checking if two things do not equal None

2014-03-29 Thread Chris Angelico
On Sun, Mar 30, 2014 at 12:19 PM, Tim Chase wrote: > On 2014-03-30 10:17, Chris Angelico wrote: >> On Sun, Mar 30, 2014 at 9:46 AM, Tim Chase >> wrote: >>> Though am I correct that your iteration tests for equality, while >>> mine tests for identity? Also, my version bails early in the >>> event

Re: checking if two things do not equal None

2014-03-29 Thread Tim Chase
On 2014-03-30 10:17, Chris Angelico wrote: > On Sun, Mar 30, 2014 at 9:46 AM, Tim Chase > wrote: >> Though am I correct that your iteration tests for equality, while >> mine tests for identity? Also, my version bails early in the >> event quitting early is possible. That's particularly useful in

Re: checking if two things do not equal None

2014-03-29 Thread Ethan Furman
On 03/29/2014 02:01 PM, Johannes Bauer wrote: On 29.03.2014 20:05, Steven D'Aprano wrote: On Sat, 29 Mar 2014 11:56:50 -0700, contact.trigon wrote: if (a, b) != (None, None): or if a != None != b: Preference? Pros? Cons? Alternatives? if not (a is b is None): ... Or if you prefer: if a is

Re: checking if two things do not equal None

2014-03-29 Thread contact . trigon
Thanks everyone; it has been very educational. > Dave Angel: > ...we'll find that two of the alternatives are not even equivalent. That helped me realize (a,b) != (None, None) is not correct for the function. It's a case where two parameters have None as the default argument. What I want is to

Re: checking if two things do not equal None

2014-03-29 Thread Chris Angelico
On Sun, Mar 30, 2014 at 9:46 AM, Tim Chase wrote: > Though am I correct that your iteration tests for equality, while > mine tests for identity? Also, my version bails early in the event > quitting early is possible. That's particularly useful in the case > of doing something like > > if all(x

Re: checking if two things do not equal None

2014-03-29 Thread Terry Reedy
On 3/29/2014 2:56 PM, contact.tri...@gmail.com wrote: if (a, b) != (None, None): or if a != None != b: Preference? Pros? Cons? Alternatives? if a is not None is not b == if a is not None and None is not b == if a is not None and b is not None which is what I would write if not trying to be cut

Re: checking if two things do not equal None

2014-03-29 Thread Roy Smith
In article , Tim Chase wrote: > On 2014-03-29 18:41, Roy Smith wrote: > > On Mar 29, 2014, at 6:36 PM, Tim Chase wrote: > > > > > And for cases where you have more than one or two things to test > > > for None-itude, you could use > > > > > > if all(x is None for x in [a, b, c, d]): > > >

Re: checking if two things do not equal None

2014-03-29 Thread Tim Chase
On 2014-03-29 18:41, Roy Smith wrote: > On Mar 29, 2014, at 6:36 PM, Tim Chase wrote: > > > And for cases where you have more than one or two things to test > > for None-itude, you could use > > > > if all(x is None for x in [a, b, c, d]): > >do_something_if_theyre_all_None() > > I might ha

Re: checking if two things do not equal None

2014-03-29 Thread Roy Smith
On Mar 29, 2014, at 6:36 PM, Tim Chase wrote: > And for cases where you have more than one or two things to test for > None-itude, you could use > > if all(x is None for x in [a, b, c, d]): >do_something_if_theyre_all_None() I might have written that as: if set([a, b, c, d]) == set(None)

Re: checking if two things do not equal None

2014-03-29 Thread Tim Chase
On 2014-03-29 17:07, Roy Smith wrote: > > if (a is not None) or (b is not None): > > > > is immediately understandable by everyone? > > I agree with that. But > > > if (a, b) != (None, None): > > seems pretty straight-forward to me too. In fact, if anything, it > seems easier to understan

Re: checking if two things do not equal None

2014-03-29 Thread Johannes Bauer
On 29.03.2014 22:55, Johannes Bauer wrote: >>> if (a is not None) or (b is not None): > > Yes, probably. I liked the original, too. If I were writing the code, > I'd probably try to aim to invert the condition though and simply do > > if (a is None) and (b is None) > > Which is pretty easy to u

Re: checking if two things do not equal None

2014-03-29 Thread Johannes Bauer
On 29.03.2014 22:07, Roy Smith wrote: > I agree with that. But > >> if (a, b) != (None, None): > > seems pretty straight-forward to me too. In fact, if anything, it seems > easier to understand than > >> if (a is not None) or (b is not None): Yes, probably. I liked the original, too. If I w

Re: checking if two things do not equal None

2014-03-29 Thread Dave Angel
Roy Smith Wrote in message: > In article , > Johannes Bauer wrote: > >> On 29.03.2014 20:05, Steven D'Aprano wrote: >> > On Sat, 29 Mar 2014 11:56:50 -0700, contact.trigon wrote: >> > >> >> if (a, b) != (None, None): >> >> or >> >> if a != None != b: >> >> >> >> Preference? Pros? Cons? Altern

Re: checking if two things do not equal None

2014-03-29 Thread Roy Smith
In article , Johannes Bauer wrote: > On 29.03.2014 20:05, Steven D'Aprano wrote: > > On Sat, 29 Mar 2014 11:56:50 -0700, contact.trigon wrote: > > > >> if (a, b) != (None, None): > >> or > >> if a != None != b: > >> > >> Preference? Pros? Cons? Alternatives? > > > > if not (a is b is None): ...

Re: checking if two things do not equal None

2014-03-29 Thread Johannes Bauer
On 29.03.2014 20:05, Steven D'Aprano wrote: > On Sat, 29 Mar 2014 11:56:50 -0700, contact.trigon wrote: > >> if (a, b) != (None, None): >> or >> if a != None != b: >> >> Preference? Pros? Cons? Alternatives? > > if not (a is b is None): ... > > Or if you prefer: > > if a is not b is not None: ..

Re: checking if two things do not equal None

2014-03-29 Thread contact . trigon
> Do you actually want to check for arbitrary objects which may claim to > equal None, or do you want to check for objects which are None? Arbitrary objects are not a concern. > if not (a is b is None): ... > > if a is not b is not None: ... Thanks for the examples. -- https://mail.python.o

Re: checking if two things do not equal None

2014-03-29 Thread Lele Gaifax
Steven D'Aprano writes: > if not (a is b is None): ... > > Or if you prefer: > > if a is not b is not None: ... >>> 1 is not 1 is not None False So definitely the former! ciao, lele. -- nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri real: Emanuele Gaifas | comincerò ad ave

Re: checking if two things do not equal None

2014-03-29 Thread Steven D'Aprano
On Sat, 29 Mar 2014 11:56:50 -0700, contact.trigon wrote: > if (a, b) != (None, None): > or > if a != None != b: > > Preference? Pros? Cons? Alternatives? Do you actually want to check for arbitrary objects which may claim to equal None, or do you want to check for objects which are None? Nea

checking if two things do not equal None

2014-03-29 Thread contact . trigon
if (a, b) != (None, None): or if a != None != b: Preference? Pros? Cons? Alternatives? :D -- https://mail.python.org/mailman/listinfo/python-list