For review: PEP 308 - If-then-else expression

Andrew Koenig ark at
Mon Feb 10 03:29:13 CET 2003

holger> Maybe Roman Suzi (IIRC) has found one (short-circuiting)

holger>     cond -> (true_expr, false_expr)

holger> which i am currently thinking about.  

I'm not thrilled about this example because if you cover up the
"cond ->" part, you get what looks like a tuple, and tuples don't

I'd be happy with

        true_expr if cond else false_expr

but must confess that I'm growing more in favor of

        if cond: true_expr else: false_expr

even though it looks like an if statement -- or perhaps *because*
it looks like an if statement.

I don't think there's any real ambiguity from the compiler's
viewpoint, because "if" denotes a statement only when it is the first
token of the statement and an expressin otherwise.

I also don't think that there's any real ambiguity from the
programmer's viewpoint, because the meaning is conceptually the
same for expressions as for statements.

Andrew Koenig, ark at,

More information about the Python-list mailing list