On Sat, Mar 8, 2014 at 8:36 AM, Dave Angel <da...@davea.name> wrote: > Mark Lawrence <breamore...@yahoo.co.uk> Wrote in message: >> On 08/03/2014 01:23, Scott W Dunning wrote: >> >>> def print_hints(secret, guess): >>> if guess < 1 or guess > 100: >> >> Only now do I feel that it's time to point out that the above line would >> probably be written by an experienced Python programmer as:- >> >> if 1 > guess > 100: >> > > With an appropriate 'not' or its equivalent, of course.
i.e. guess < 1 or guess > 100 becomes not not (guess < 1 or guess > 100) distribute over the disjunction not (not (guess < 1) and not (guess > 100)) logically negate the comparisons not (1 <= guess and guess <= 100) finally, write the conjoined comparisons as a chained comparison: not (1 <= guess <= 100) i.e., guess isn't in the closed interval [1, 100]. Anyway, you needn't go out of your way to rewrite the expression using a chained comparison. The disjunctive expression is actually implemented more efficiently by CPython's compiler, which you can verify using the dis module to disassemble the bytecode. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor