像在C中一样在python中循环“for”

Cycle “for” in python like in C

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python decimal range() step value

我有一个C循环:

1
2
3
for (float i = 0; i < 2 * CONST; i += 0.01) {
    // ... do something
}

我在python中需要相同的循环,但是:

1
for x in xxx

不一样。

我怎么能用Python做?


你快上线了。以下是您在列表中的操作方式:

1
2
3
your_list = [1, 2, 3]
for eachItem in your_list:
    print eachItem

如果要在某个范围内迭代:

1
2
for i in xrange(10):
    print i

要给出阶跃值,可以使用第三个参数,因此在您的情况下,它是:

1
2
for i in xrange(2 * CONST, 1):
    print i

但只能将integer值作为步进值。

如果要使用float增量,则必须稍微修改一下范围:

1
2
for i in xrange(200 * CONST):
    print i / 100.0


1
2
for i in xrange(200*CONST):
    i = i/100.0


写你自己的测距仪。这有助于您轻松地处理非整数步进值,在整个程序中,解决同一类的多个问题。它的可读性也更高。

1
2
3
4
5
6
7
def my_range(start, end, step):
    while start <= end:
        yield start
        start += step

for x in my_range(1, 2 * CONST, 0.01):
    #do something

循环参考


numpy有一个方法,可以用来创建一个浮动范围。

1
2
3
4
from numpy import arange

for x in arange(0, 2*CONST, 0.01):
    do_something(x)