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

时间:2010-03-13 20:01:56

标签: python range

我可以使用范围轻松打印一系列数字,但是可以打印从-10到10的小数点后1位的范围吗?

e.g

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

5 个答案:

答案 0 :(得分:7)

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

(Python 3.x中不需要.0

答案 1 :(得分:2)

实现浮点范围的a recipe on ActiveState。在您的示例中,您可以像

一样使用它
frange(-10, 10.01, 0.1)

请注意,由于floating-point representation,大多数体系结构都不会生成1位小数。如果您想要准确,请使用decimal module

答案 2 :(得分:0)

numpy.arange可能会很好地满足您的目的。

答案 3 :(得分:0)

print(', '.join('%.1f' % x/10.0 for x in range(-100, 101)))

应该在任何级别的Python中完成你所要求的(打印部分,即!)(当然是一个很长的行 - 几百个字符! - )。您可以在Python 2中省略外部括号,可以省略Python 3中的.0位等,但如图所示的编码将适用于Python版本。

答案 4 :(得分: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)添加到函数体中。