Python for循环与小步骤

Python for loop with small steps

本问题已经有最佳答案,请猛点这里访问。

如何在python中使用步骤0.01创建for循环?

我试过了,但没用:

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

上面写着类型错误:需要range()整数结束参数,得到float。


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

将产生

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


如果不想使用库:

1
2
3
4
5
6
7
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


python range只接受错误消息指示的整数。如果要使用浮动步骤,可以使用numpy的a range,也可以只划分一个整数范围:

1
2
3
>>> import numpy as np
>>> print np.arange(-0.02, 0.02, 0.01)
array([-0.02, -0.01,  0.  ,  0.01])

在您的示例中:

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

或:

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