我正尝试使用步长0.01(例如)从0循环到1。我该怎么做呢? for i in range(start, stop, step)
只接受整数参数,因此浮点数不起作用。
答案 0 :(得分:23)
for i in [float(j) / 100 for j in range(0, 100, 1)]:
print i
答案 1 :(得分:4)
避免使用此方法复合浮点错误。步数是预期的,而每个步骤的计算值。
def drange2(start, stop, step):
numelements = int((stop-start)/float(step))
for i in range(numelements+1):
yield start + i*step
Usage:
for i in drange2(0, 1, 0.01):
print i
答案 2 :(得分:1)
一个选项:
def drange(start, stop, step):
while start < stop:
yield start
start += step
用法:
for i in drange(0, 1, 0.01):
print i
答案 3 :(得分:0)
好吧,你可以让你的循环从0到100,步长为1,这将给你相同的步数。然后你可以将i除以100,无论你将要做什么。
答案 4 :(得分:0)
您可以使用列表推导:
print([i for i in [float(j) / 100 for j in range(0, 100, 1)]])
如果你想控制打印,那么就这样做:
print(['something {} something'.format(i) for i in [float(j) / 100 for j in range(0, 100, 1)]])
或
list(i for i in [float(j) / 100 for j in range(0, 100, 1)])
答案 5 :(得分:0)
我会说最好的方法是使用numpy数组。
如果您想以0.25为增量从-2到+2循环播放,那么这就是我的方法:
Start = -2
End = 2
Increment = 0.25
Array = np.arange(Start, End, Increment)
for i in range(0, Array.size):
print (Array[i])
答案 6 :(得分:-1)
你的代码
for i in range(0,100,0.01):
可以用非常简单的方式实现,而不是使用float
for i in range(0,10000,1):
如果你非常关心浮动那么你可以去 https://stackoverflow.com/a/4935466/2225357