do you fail at FizzBuzz? simple prog test
Ivan Illarionov
ivan.illarionov at gmail.com
Sun May 11 00:39:30 EDT 2008
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
More information about the Python-list
mailing list