agf*_*997 1 python for-loop python-3.x
我只是想弄清楚逻辑并使用 Python 来帮助我做到这一点。最终,我需要使用 ImageJ 宏语言来解决这个问题。
我不知道我是否使用了正确的术语,但我想创建一个“蛇”计数器。
x = 1
number = 12
maxVal = 3
minVal = 1
for i in xrange(number):
%do something
x = incrementSnakeCounter(x, maxVal, minVal)
print("i = ", i)
print("x = ", x)
Run Code Online (Sandbox Code Playgroud)
“蛇”部分使计数器仅上升到maxVal,在下一次迭代中重复该数字,向下计数到minVal,在下一次迭代中重复该值,并重复该过程。
例如,在上面
我希望发生以下情况:
i = 0
x = 1
i = 1
x = 2
i = 2
x = 3
i = 3
x = 3
i = 4
x = 2
i = 5
x = 1
i = 6
x = 1
i = 7
x = 2
i = 8
x = 3
i = 9
x = 3
i = 10
x = 2
i = 11
x = 1
Run Code Online (Sandbox Code Playgroud)
你会发现一些有用的工具itertools:
from itertools import chain, cycle
def snake(lower, upper):
return cycle(chain(range(lower, upper+1), range(upper, lower-1, -1)))
> s = snake(1,3)
> [next(s) for _ in range(10)]
[1, 2, 3, 3, 2, 1, 1, 2, 3, 3]
Run Code Online (Sandbox Code Playgroud)