Python 用于查找对象并在找到对象后停止的控制流

Python 用于查找对象并在找到对象后停止的控制流,python,nested-loops,control-flow,Python,Nested Loops,Control Flow,我有一个相机装备,在那里我初始化阶段,然后需要移动相机,找到一个物体可以检测到的范围。我无法预测这个物体会在哪里。如果摄像机未检测到任何物体,我将增加摄像机台并再次查看。当我找到物体开始被检测到的位置时,我将当前相机位置附加到一个列表中。我在整个范围内重复这一点。我想做的是,一旦某个对象不再在视图中,即一旦该对象停止被发现,就停止不必要的查找尝试。 我想到了一个清单,可能会这样读: y_list=[100150200250300,…500],我不知道如何检查该列表是否在for循环的几个迭代中停止

我有一个相机装备,在那里我初始化阶段,然后需要移动相机,找到一个物体可以检测到的范围。我无法预测这个物体会在哪里。如果摄像机未检测到任何物体,我将增加摄像机台并再次查看。当我找到物体开始被检测到的位置时,我将当前相机位置附加到一个列表中。我在整个范围内重复这一点。我想做的是,一旦某个对象不再在视图中,即一旦该对象停止被发现,就停止不必要的查找尝试。 我想到了一个清单,可能会这样读: y_list=[100150200250300,…500],我不知道如何检查该列表是否在for循环的几个迭代中停止了长度的增长。我曾想过使用另一个列表来显示何时检测到一个对象,但不知道如何实现它

y_列表_标志=[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0]

代码

y_list = []
len_y = len(y_list)

for i in list(range(1,70):
    my_obj = obj_present()#returns True if object detected, False otherwise
    if my_obj:
        y_list.append(current_cam_position)
        move_cam_stage()
    elif my_obj not True:
        move_cam_stage()
所需输出

y_list = [100,150,200,250,300, 350,400,450,500,550,600] # list stops growing when object not found and test has stopped


move\u cam\u stage
obj\u present
是虚拟功能

当再次找不到对象时,循环中断和列表停止增长

代码:

结果:

move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
[450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950]
def move_cam_stage():
    print("move cam stage")

def obj_present(i):
    y_list_flags = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]
    return y_list_flags[i] == 1

y_list = []
for i in range(1,70):
    my_obj = obj_present(i)#returns True if object detected, False otherwise
    if my_obj:
        y_list.append(50 + 50*i)
        move_cam_stage()
    else:
        if len(y_list)>1:
            break
print(y_list)
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
move cam stage
[450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950]