Check if a given value is out of certain range
ian.g.kelly at gmail.com
Wed Sep 30 22:46:48 CEST 2015
On Wed, Sep 30, 2015 at 2:19 PM, alister
<alister.nospam.ware at ntlworld.com> wrote:
> On Wed, 30 Sep 2015 21:06:02 +0300, Marko Rauhamaa wrote:
>> Grant Edwards <invalid at invalid.invalid>:
>>> not (0 <= x <= 10) (I)
>>> (x < 0) or (x > 10) (II)
>>> IMO, (I) is _more_ readable than (II)
>> IMO, they're equally readable (except that you should drop the redundant
>> parentheses from (II)).
> both are correct
> the problem with 1 is the human brain is not particularity good with
> to do not (some function) you first of all have to work out some function
> & then invert it, a computer does this without difficulty the human brain
> gets confused which is why I personally consider ii is more readable
> (YMMV especially if you are working with Boolean maths regularly) this
> example is relatively simple as things get more complex they become more
> error prone error.
To me, the negative of one condition (is x in this range) is more
easily processable than the disjunction of two conditions that
together compose the real, more easily understood condition (is x
outside this range). I find it preferable to avoid nested conditions,
not negated conditions, and (II) has more nesting than (I).
Thought mirrors language. In English, we typically would say "x is not
between 0 and 10", not "x is either less than 0 or greater than 10".
> *as an example you brain cannot correctly process the following.
> Not (think of your left toe)
> you are now thinking about it aren't you?
No, it made me think about thinking. I barely even registered the
phrase "left toe", much less thought about that.
In any case, that's more an issue of being unable to control what
you're thinking about. If I instruct you, "don't raise your right
hand", do you then automatically raise your right hand?
More information about the Python-list