3

Pythonで0.01のステップでforループを作成するにはどうすればよいですか?

私はこれを試しましたが、うまくいきません:

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

TypeError: range() integer end argument expected, got float と表示されます。

4

3 に答える 3

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]
于 2013-04-25T16:43:14.763 に答える
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
于 2013-04-25T16:54:18.397 に答える
5

エラーメッセージが示すように、 Pythonrangeは整数のみを取ります。float ステップを使用する場合は、numpy の arange を使用するか、単に整数範囲を分割することができます。

>>> 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]
于 2013-04-25T16:43:25.213 に答える