如何在Python中更好地控制循环增量?

26 投票
7 回答
71927 浏览
提问于 2025-04-16 11:26

我想从0循环到1,每次增加0.01(比如说)。我该怎么做呢?for i in range(start, stop, step)这个写法只能用整数,所以不能直接用小数。

7 个回答

1

一种选择:

def drange(start, stop, step):
    while start < stop:
            yield start
            start += step

用法:

for i in drange(0, 1, 0.01):
    print i
6

用这种方法可以避免浮点数错误的累积。步骤的数量是正常的,同时每一步的值都是单独计算的。

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
31
for i in [float(j) / 100 for j in range(0, 100, 1)]:
    print i

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答