【发布时间】:2016-05-13 20:42:38
【问题描述】:
我编写了以下内容来创建具有负浮点步长的范围:
def myRange(start, stop, step):
s = start
if step < 0:
while s > stop:
yield s
s += step
if step > 0:
while s < stop:
yield s
s += step
但是r = myRange(1,0,-0.1)的输出
看起来很奇怪
>>> r = myRange(1,0,-0.1)
>>> for n in r: print n
...
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
1.38777878078e-16
最后一个数字是从哪里来的?为什么不是0?
【问题讨论】:
-
在这种情况下你可以使用
print '%.1f' % n。
标签: python range generator yield