Python complaints

Fred L. Drake, Jr. fdrake at acm.org
Wed Nov 24 09:50:26 EST 1999


Gordon McMillan writes:
 > >>> def p(score):
 > ...  print "You scored %d point%s" % (score, score==1 and ' ' 
 > or 's')

  The catch is that this only works when the result value for the true 
case is also true.  I often find I want this sort of construct when
the true result is either false or may be either.  The hack to get
around this:

       x = (some.test and [v1] or [v2])[0]

is really nasty in practice, so I find it's typically *far* more
reliable to expand it out to a full-fledged if:

       if some.test:
           x = v1
       else:
           x = v2

  Much longer, but more reliable given the lack of ?: (which I'd also
like to see added, though I'm not sure what the syntax should be).


  -Fred

--
Fred L. Drake, Jr.	     <fdrake at acm.org>
Corporation for National Research Initiatives




More information about the Python-list mailing list