2013-04-25 89 views
3

如何使用0.01的步长在python中创建for循环?用于循环的小步骤的Python

我试过,但它不工作:

for X0 in range (-0.02, 0.02, 0.01): 
    for Y0 in range (-0.06, 0.09, 0.01): 

它说 类型错误:范围()整数年底预计的说法,得到了浮动。

+0

看到这个曲子estion如果你想编写一个'范围'函数接受浮动或如果你想使用numpy:http://stackoverflow.com/questions/477486/python-decimal-range-step-value – Nicolas 2013-04-25 16:44:24

+2

这个问题已被问及之前回答。 http://stackoverflow.com/questions/477486/python-decimal-range-step-value – AlexLordThorsen 2013-04-25 16:46:21

回答

8
[x * 0.01 for x in xrange(10)] 

会产生

[0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09] 
+0

我该如何做双循环? – Steven 2013-04-25 16:44:07

+0

对于范围内的X0([X0 * 0.01对于xrange(-2,2)中的x)]): – Steven 2013-04-25 16:46:25

+0

只需用上面的列表(或其他迭代器)替换“range(...)”即可。 – tiago 2013-04-25 16:46:40

5

蛇皮range仅作为错误消息指示需要的整数。如果你想使用float步骤,您可以使用numpy的的人气指数,或只是把一个整数的范围:

>>> import numpy as np 
>>> print np.arange(-0.02, 0.02, 0.01) 
array([-0.02, -0.01, 0. , 0.01]) 
在你的榜样

for X0 in np.arange(-0.02, 0.02, 0.01): 
    for Y0 in np.arange(-0.06, 0.09, 0.01): 

或:

>>> print [a/0.01 - 0.02 for a in range(4)] 
[-0.02, -0.01, 0.0, 0.009999999999999998] 
5

如果您不想使用库:

def float_range(a,b,c): 
    while a < b: 
     yield a 
     a += c 
for X0 in float_range (-0.02, 0.02, 0.01): 
    for Y0 in float_range (-0.06, 0.09, 0.01): 
     print X0, Y0