On May 20, 6:57 am, Wolfgang Grafen <[EMAIL PROTECTED]> wrote: > globalrev schrieb: > > > > > > >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? > > Your example is comprehensive compared to many other suggestions which > is an advantage IMO. I minimised it further > > for i in range(start, stop, step): > if not i%15: > print "FizzBuzz" > elif not i%3: > print "Fizz" > elif not i%5: > print "Buzz" > else: > print i > > Best regards > > Wolfgang- Hide quoted text - > > - Show quoted text -
This one eliminates the modulo operation. dyn= list( xrange( 1, 101 ) ) for i in xrange( 1, len( dyn ), 3 ): dyn[ i ]= '' for i in xrange( 1, len( dyn ), 5 ): dyn[ i ]= '' for i in xrange( 1, len( dyn ), 3 ): dyn[ i ]+= 'Fizz' for i in xrange( 1, len( dyn ), 5 ): dyn[ i ]+= 'Buzz' for d in dyn: print d Can we compare? -- http://mail.python.org/mailman/listinfo/python-list