Skip to main content
 首页 » 编程设计

python之创建一个 "snake"计数器

2025年05月04日15myhome

我只是想弄清楚逻辑并使用 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) 

“蛇形”部分是使计数器只上升到 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 

请您参考如下方法:

您会在 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]