On Sun, 11 May 2008 04:26:10 +0000, Ivan Illarionov wrote: > On Sat, 10 May 2008 18:12:37 -0700, globalrev wrote: > >> http://reddit.com/r/programming/info/18td4/comments >> >> claims people take a lot of time to write a simple program like this: >> >> >> "Write a program that prints the numbers from 1 to 100. But for >> multiples of three print "Fizz" instead of the number and for the >> multiples of five print "Buzz". For numbers which are multiples of both >> three and five print "FizzBuzz". >> >> for i in range(1,101): >> if i%3 == 0 and i%5 != 0: >> print "Fizz" >> elif i%5 == 0 and i%3 != 0: >> print "Buzz" >> elif i%5 == 0 and i%3 == 0: >> print "FizzBuzz" >> else: >> print i >> >> >> 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))) -- Ivan -- http://mail.python.org/mailman/listinfo/python-list