[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

Reply via email to