Duncan Booth wrote:
Ivan Illarionov <[EMAIL PROTECTED]> wrote:

is there a better way than my solution? is mine ok?
['%s%s' % (not i%3 and 'Fizz' or '', not i%5 and 'Buzz' or '')
 or str(i) for i in xrange(1, 101)]

-- Ivan
or, more correctly, if you actually need to "print":

sys.stdout.write('\n'.join('%s%s' % (not i%3 and 'Fizz' or '', not i%5 aBuzz' or '') or str(i) for i in xrange(1, 101)))

I think the variant I came up with is a bit clearer:

for i in range(1,101):
        print '%s%s' % ('' if i%3 else 'Fizz', '' if i%5 else 'Buzz') or i

More than a bit clearer, IMO. How about
    print ('' if i%3 else 'Fizz') + ('' if i%5 else 'Buzz') or i
(or perhaps
    print (('' if i%3 else 'Fizz') + ('' if i%5 else 'Buzz')) or i
to save looking up the precedence rules) ?
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to