[Python-Dev] Re: Trinary Operators

Ka-Ping Yee ping@zesty.ca
Thu, 6 Feb 2003 19:38:23 -0600 (CST)


On Thu, 6 Feb 2003, Shane Holloway (IEEE) wrote:
> I was thinking that the semantics of "and" & "or" are the replacement
> for the trinary operator?  Since these operations always return the last
> evaluated subexpression (the same subexpression that short-circuits the
> evaluation), they can be used as Gerald outlines above.

Unfortunately, this doesn't work if the result is false.
For example, here's a common idiom i use in C:

    printf("Read %d file%s.", count, count == 1 ? "" : "s");

If you try to translate this to Python using "and"/"or":

    print 'Read %d file%s.' % (count, count == 1 and '' or 's')

...it doesn't work, because the empty string is false.

Alas...


-- ?!ng