for n in itertools.count(0):
if x0 <= xmin:
break
xy.createSomeCube(x0,y0,z0,x1,y1,z1)
xy.someCube(n).setSomeParameters(dx,dy,dz)
...
x0 -= someDecrement(someArgument)
你也可以用
from itertools import count, takewhile
for n in takewhile(lambda _: x0 < xmin, count(0)):
xy.createSomeCube(x0,y0,z0,x1,y1,z1)
xy.someCube(n).setSomeParameters(dx,dy,dz)
...
x0 -= someDecrement(someArgument)
更新:由于您编辑了帖子,下面的答案不再相关。我认为最简单的解决方案是只使用while循环;它只需要添加两行代码(以及短代码)。如果您提供有关
x0
递减的函数/值的更多信息,也许我们可以找到一个巧妙的解决方案,使用列表/生成器,以便使用for循环。你知道吗上一页:
将其转换为for循环:
i
包含上一次的x0,每次迭代它都会减少abc。你知道吗enumerate
将索引与生成的列表中的项合并,因此n在每次迭代时都有当前索引。你知道吗编辑:正如Roger Fan所指出的,只有当
x0
、xmin
、abc
是整数时,这才有效。否则,您将不得不使用while循环。你知道吗可以将半无限范围与
itertools.count
一起使用:你也可以用
但这可能只适用于函数式编程爱好者:)
相关问题 更多 >
编程相关推荐