James Stroud wrote:
> Steve Holden wrote:
>> You'd be worth more if you'd used elif and omitted the continue 
>> statements, but for a first solution it's acceptable.
> 
> Depends on what you are after.
> 
> py> s = """
> ... for i in xrange(1,101):
> ...   if not i % 15:
> ...     continue
> ...   if not i % 5:
> ...     continue
> ...   if not i % 3:
> ...     continue
> ...   else:
> ...     pass
> ... """
> py> t = timeit.Timer(stmt=s)
> py> print "%.2f usec/pass" % (1000000 * t.timeit(number=100000)/100000)
> 40.49 usec/pass
> py> s = """
> ... for i in xrange(1,101):
> ...   if not i % 15:
> ...     pass
> ...   elif not i % 5:
> ...     pass
> ...   elif not i % 3:
> ...     pass
> ...   else:
> ...     pass
> ... """
> py> t = timeit.Timer(stmt=s)
> py> print "%.2f usec/pass" % (1000000 * t.timeit(number=100000)/100000)
> 40.88 usec/pass
> 

To be strictly comparable you should have pass statements before the 
continue statements as well.  Ignoring that, clearly it's well worth 
saving that extra 390 nanoseconds each time round the loop.

Repeat after me "premature optimization is the root of all evil".

   http://en.wikipedia.org/wiki/Optimization_(computer_science)

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb     http://del.icio.us/steve.holden
Recent Ramblings       http://holdenweb.blogspot.com

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

Reply via email to