On Sunday, October 4, 2015 at 7:18:11 PM UTC+5:30, Steven D'Aprano wrote: > On Sat, 3 Oct 2015 10:12 pm, Laura Creighton wrote: > > > Actually, the fact that adults have more difficulty processing > > negations is one of the earliest things proven experimentally > > in experimental psychology. > > I don't think I've questioned that under some circumstances some negations > can be hard to understand. I've certainly written my share of code > involving negatives that I've had to refactor to understand. A typical > example: > > def function(arg, dontpreprocess=False): > """Perform function on arg. If dontpreprocess is not true, > arg is preprocessed.""" > if not dontpreprocess: > arg = preprocess(arg) > ... > > And of course there are the legendary chains of negations: > > don't not cancel the preprocessor suppressor > > Does the preprocess run or not? :-) > > But I don't think we can jump from a general observation about negations to > the conclusion that a logical disjunction of two different comparisons is > necessarily easier to understand than a negated chained comparison. Some > negations are easy to understand: > > Don't touch that! > > and some negations may technically be harder to understand, but in a > practical sense the difference may be negligible: > > if x == 1: ... > > if x != 1: ... > > > I refuse to believe that the second is *significantly* harder to reason > about than the first.
[With hermeneutic/semantic hat firmly on] one could make a case that "!=" ≠ "not =" ≠ "≠" [Back with python hat] My preference: not 1 <= x <= 10 -- https://mail.python.org/mailman/listinfo/python-list