Python for循环与小步骤

Ste*_*ven 3 python loops for-loop

如何在步骤为0.01的python中创建for循环?

我试过这个,但它不起作用:

 for X0 in range (-0.02, 0.02, 0.01):
     for Y0 in range (-0.06, 0.09, 0.01): 
Run Code Online (Sandbox Code Playgroud)

它说TypeError:range()期望整数结束参数,得到浮点数.

mja*_*day 8

[x * 0.01 for x in xrange(10)]
Run Code Online (Sandbox Code Playgroud)

会产生

[0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09]
Run Code Online (Sandbox Code Playgroud)


tia*_*ago 5

python range只接收整数,如错误消息所示.如果你想使用浮动步骤,你可以使用numpy的arange或者只是划分一个整数范围:

>>> import numpy as np
>>> print np.arange(-0.02, 0.02, 0.01)
array([-0.02, -0.01,  0.  ,  0.01])
Run Code Online (Sandbox Code Playgroud)

在你的例子中:

for X0 in np.arange(-0.02, 0.02, 0.01):
    for Y0 in np.arange(-0.06, 0.09, 0.01):   
Run Code Online (Sandbox Code Playgroud)

要么:

>>> print [a/0.01 - 0.02 for a in range(4)]
[-0.02, -0.01, 0.0, 0.009999999999999998]
Run Code Online (Sandbox Code Playgroud)


Hal*_*ary 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
Run Code Online (Sandbox Code Playgroud)