[EMAIL PROTECTED] kirjoitti: > Jussi Salmela: >> In this particular case you don't need the ternary operator: >> print "I saw %d car%s\n" % (n, ("", "s")[n != 1]) > > The last newline is probably unnecessary. This seems be a bit more > readable: > print "I saw", n, "car" + ("", "s")[n != 1] > > With Python 2.5 this looks better: > print "I saw", n, "car" + ("" if n == 1 else "s") > > Or the vesion I like better: > print "I saw", n, ("car" if n == 1 else "cars") > > Those () aren't necessary, but they help improve readability, and > avoid problems with operator precedence too. That if has a quite low > precedence. > > Bye, > bearophile > This is getting weird but here's 2 more in the spirit of "who needs the ternary operator - I don't!". And I'm starting to wonder what the 'obvious way' (as in 'Zen of Python') to write this would be.
print "I saw %d car%s" % (n, {1:''}.get(n==1, 's')) print "I saw %d car%s" % (n, 's'*(n!=1)) Cheers, Jussi -- http://mail.python.org/mailman/listinfo/python-list