On May 12, 1:59 pm, Arnaud Delobelle <[EMAIL PROTECTED]> wrote:
> On May 12, 1:30 pm, John Machin <[EMAIL PROTECTED]> wrote:
>
> > Duncan Booth wrote:
> [...]
> > > 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) ?
>
> Stuff clarity!  How about
>
> for i in xrange(1, 101):
>     print 'FizzBuzz'[4*(i%3>0):4+4*(i%5<1)] or i

for i in xrange(1, 101):
    print 'Fizz'*(i%3<1)+'Buzz'*(i%5<1) or i

--
Paul Hankin
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to