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
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor