在Python中使用小数作为步长的for循环

7
我想要创建一个类似于这样的for循环:
for x in range(0, 1, 0.1):
    print(x)

显然,它会抛出以下错误:

Traceback (most recent call last): File "", line 1, in for i in range(0, 1, 0.1): TypeError: 'float' object cannot be interpreted as an integer

那么在Python 3.6中有没有一种方法可以使用浮点数进行for循环呢?

2个回答

13

使用 numpy 的 arange 代替 range:

import numpy as np
for x in np.arange(0, 1, 0.1):
    print(x)

1
请记住,由于“0.1”无法准确表示为有限的二进制分数,因此您可能无法得到完全符合预期的数字。我喜欢Simon使用整数并除以10的方法更好;它不太容易积累舍入误差。 - kindall

7
为什么不将整数除以一个值,并将其转换为浮点数呢?
for x in range(0, 10, 1):
    print(x/10)

在此处您可以选择从0到10的范围,然后将输出结果除以10以得到一个浮点数。


是的。我应该考虑到这一点,我想这是从Python2.x的过去经验让我害怕除以整数。 - Tissuebox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接