如何在Python中打印带小数点的范围?

1 投票
5 回答
1758 浏览
提问于 2025-04-15 20:23

我可以很简单地用range打印一系列数字,但有没有办法从-10到10打印出带有1位小数的数字呢?

比如说:

-10.0, -9.9, -9.8 一直到 +10?

5 个回答

0

定义一个简单的函数,比如:

def frange(fmin, fmax, fleap):
    cur=fmin
    while cur<fmax:
        yield cur
        cur+=fleap

可以用 generators 来调用它,例如:

my_float_range=[i for i in frange(-10,10,.1)]

在函数内部可以添加一些基本的检查,比如确保 fmin<fmax 这个条件成立。

2

在ActiveState上有一个教程,它实现了一个可以生成浮点数范围的功能。在你的例子中,你可以这样使用它:

frange(-10, 10.01, 0.1)

需要注意的是,由于浮点数表示法的原因,在大多数计算机上,这个方法不会生成一位小数。如果你想要更精确的结果,可以使用decimal模块

7
[i/10.0 for i in range(-100,101)]

(在Python 3.x中,.0是不用加的)

撰写回答