【发布时间】:2012-10-17 09:52:59
【问题描述】:
我在 C 中有一个循环:
for (float i = 0; i < 2 * CONST; i += 0.01) {
// ... do something
}
我在 python 中需要同样的循环,但是:
for x in xxx
不一样。
如何在 python 中实现?
【问题讨论】:
标签: python
我在 C 中有一个循环:
for (float i = 0; i < 2 * CONST; i += 0.01) {
// ... do something
}
我在 python 中需要同样的循环,但是:
for x in xxx
不一样。
如何在 python 中实现?
【问题讨论】:
标签: python
编写您自己的范围生成器。这可以帮助您在整个程序中轻松处理非整数步长值,解决多个同类问题。它也更具可读性。
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
【讨论】:
range 和 xrange 都在整数上工作,并且一个自定义的类范围生成器允许解决这个问题。另见stackoverflow.com/questions/477486/…
你快要上线了。这是您在列表中的操作方式:-
your_list = [1, 2, 3]
for eachItem in your_list:
print eachItem
如果你想迭代某个范围:-
for i in xrange(10):
print i
要给出步长值,您可以使用第三个参数,因此在您的情况下,它将是:-
for i in xrange(2 * CONST, 1):
print i
但您只能将integer 值作为步长值。
如果你想使用float 增量,你必须稍微修改你的范围:-
for i in xrange(200 * CONST):
print i / 100.0
【讨论】:
numpy 有一个方法可以用来创建一系列浮点数。
from numpy import arange
for x in arange(0, 2*CONST, 0.01):
do_something(x)
【讨论】:
for i in xrange(200*CONST):
i = i/100.0
【讨论】: