[Tutor] Better way to compare values?
memilanuk
memilanuk at gmail.com
Mon Aug 29 05:33:29 CEST 2011
>
> There's a few things that can make this a lot shorter. To address your
> primary question first, the python idiom for this is like so:
>
> if 10 in (a, b):
>
> it constructs a tuple containing the variables a and b, then checks if
> the number ten is inside that tuple. simple and straightforward. Now,
> or's aren't limited to just two operands. you can chain multiple or's
> together to make this function even shorter, like so:
>
> if a == 10 or b == 10 or a + b == 10:
That's pretty much what the 'book' solution was (found the 'Show
Solution' button staring me in the face shortly after posting my
question here.
def makes10(a,b)
return(a == 10 or b == 10 or a + b == 10)
>
> So, all said and done, the solution to your problem in idiomatic
> python looks like this:
>
> def makes10(a, b):
> return 10 in (a, b, a + b)
>
Something else I learned from this... for some reason I had the idea in
my head that 'return' was a function like print() i.e. 'return()'.
Obviously not, from your example and from others that I dug up in the
Python docs.
Thanks for the detailed explanation - it was very clear and easy to
follow! What I had originally been thinking was something like 'a && b'
or 'a || b'... but that was probably some cross-pollenation from earlier
dabbling in PHP or something ;)
Thanks,
Monte
More information about the Tutor
mailing list