[Tutor] Help with Guess the number script

Scott W Dunning swdunning at cox.net
Mon Mar 10 03:03:33 CET 2014


On Mar 8, 2014, at 7:29 AM, eryksun <eryksun at gmail.com> wrote:
> i.e.
> 
>    guess < 1 or guess > 100
> 
> becomes
> 
>    not not (guess < 1 or guess > 100)
Why a not not?  Wouldn’t that just be saying do this because the second not is undoing the first? 
> 
> 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.
I’m not sure what you’re talking about in the above paragraph.  



More information about the Tutor mailing list