"thebjorn" <[EMAIL PROTECTED]> wrote: > def age(born): > now = date.today() > birthday = date(now.year, born.month, born.day) > return now.year - born.year - (birthday > now and 1 or 0)
I don't get that last line. There's two things in particular that are puzzling me. 1) What does "birthday > now" mean? It sounds like you haven't been born yet. 2) I find the "and 1 or 0" part very confusing. I can't remember all the minor rules about operator precedence, but I'm sure this works out to some clever hack involving boolean short-circuit evaluation to get around the lack of a ternary operator in python. If I need to pull out the reference manual to decipher what an expression means, it's too complicated. Try something like: if birthday > now: return now.year - born.year - 1 else: return now.year - born.year It takes up a little more space, but it's bog easy to understand without scratching your head or diving into the manual to refresh your memory of obscure language details. -- http://mail.python.org/mailman/listinfo/python-list