Python 范围函数
假设我想从0循环到100,但每次增加0.5。如果你尝试这样做:
for i in range(0, 100, 0.5):
whatever
错误:
步长不能为0
问题:在Python 2.x中,有没有什么内置的方法可以做到这一点呢?
6 个回答
4
你在使用 range
() 和 xrange()
时,步长必须是整数。这就是为什么你用的 0.5 步长会被自动转换成 0,导致出现错误。你可以试试这个写法:for i in [j / 2.0 for j in xrange(100 * 2)]:
10
如果你有使用 numpy
这个库,这里有两种方法可以实现这个功能:
numpy.arange(0, 100, 0.5)
numpy.linspace(0, 100, 200, endpoint=False)
28
Python2.x:
for idx in range(0, int(100 / 0.5)):
print 0.5 * idx
输出结果:
0.0
0.5
1.0
1.5
..
99.0
99.5
Numpy:
numpy.arange
也可以实现这个功能。
numpy.arange(0, 100, 0.5)