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

David Gausebeck gausebec-spam at
Sat Feb 8 03:13:30 CET 2003

>Carel> The proposal as is looks reasonable to me, it would clean up
>Carel> those few uses of (a and b or c) that I have in my code.
>Would you mind showing us some concrete examples?  I think that
>some real code examples would be quite useful to the discussion.

The simple example I used in a previous thread is:

   if is_html:
      extension = "html"
      extension = "txt"
   print "Processed %s.%s." % (filename, extension)

This could currently also be implemented as

   print "Processed %s.%s." % (filename, is_html and "html" or "txt")

Per the PEP, it would be

   print "Processed %s.%s." % (filename, "html" if is_html else "txt")

The alternate version that I currently like is to use essentially the
current 'if' syntax but with a different keyword, operating on
expressions instead of statements.  Of course, the big problem with
this is that it would require a new keyword.  If the keyword is
'when', it would look like:

   print "Processed %s.%s." % (filename, when is_html: "html" else: "txt")


More information about the Python-list mailing list