for with decimal values?

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Sun May 3 19:52:29 EDT 2009


On Sun, 03 May 2009 13:41:49 -0700, Zentrader wrote:

> There is no need for a function or a generator.  A for() loop is a
> unique case of a while loop
> ## for i in range(-10.5, 10.5, 0.1):
> ctr = -10.5
> while ctr < 10.5:
>    print ctr
>    ctr += 0.1


To match the semantics of range(), the final value to ctr must be less 
than but not equal to 10.5. 

>>> print ctr
10.6

Your solution does not do this -- it goes one steps too many, and then 
misleadingly fails to print the value. This is a bug waiting to hit, any 
time somebody runs your loop then goes to use ctr outside the loop.



-- 
Steven



More information about the Python-list mailing list