题目:
python中for i in range(0, 3.0 , 0.1)为什么错?
如果想要输出公差为0.1的等差数列呢?
解答:
python中的浮点数range方法
我们知道python中有个range函数用来产生一个范围内的数字数组,但是浮点数没有,我们来定义一个
#python中的range函数支持步进,如下:
>>> print range(2,15,3)
[2, 5, 8, 11, 14]
#但是浮点数不支持range函数,自己定义一个类似的
def floatrange(start,stop,steps):
''' Computes a range of floating value.
Input:
start (float) : Start value.
end (float) : End value
steps (integer): Number of values
Output:
A list of floats
Example:
>>> print floatrange(0.25, 1.3, 5)
[0.25, 0.51249999999999996, 0.77500000000000002, 1.0375000000000001, 1.3]
'''
return [start+float(i)*(stop-start)/(float(steps)-1) for i in range(steps)]
#运行范例:
>>> print floatrange(0.25, 1.3, 5)
[0.25, 0.51249999999999996, 0.77500000000000002, 1.0375000000000001, 1.3]
这篇博客讨论了Python中for循环不支持浮点数range的问题,并提供了一个自定义的floatrange函数来生成浮点数等差数列。通过这个函数,可以实现指定起始、结束和步长的浮点数序列。示例展示了如何使用floatrange(0.25, 1.3, 5)生成浮点数列表。

被折叠的 条评论
为什么被折叠?



