Python 范围函数

20 投票
6 回答
42067 浏览
提问于 2025-04-17 02:56

假设我想从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)

撰写回答