嵌套循环的中断缩进

Break indentation for nested loop

我在嵌套 for 循环中断方面遇到了麻烦。

进一步的代码假设找到特定颜色的像素,该示例包含在打开的文件中,步骤 50 沿着 x20 沿着 y

im1 = Image.open("C:\Users\Poos\Desktop\G\green_pixel.bmp")
A = list(im1.getdata())

x = 0
y = 0

im2 = ImageGrab.grab()
B = list(im2.getdata())

for x in range(0,1024, 50):
    for y in range(0,600, 20):
      if(B != A):
         im3 = im2.crop((x,y,x+1,y+1))
         B = list(im3.getdata())
         print(x, y)

      else:
         print("hooray!")
         break

      break

一旦检测到像素,两个循环都应该中断,打印一些文本。

但是 x-loop 不会在放置外部中断的任何地方中断,多次打印我的文本。

看来我已经尝试了所有可能的外部中断位置变体,但没有任何效果。

这里有什么问题?

考虑将代码放入函数中并使用 return 语句跳出所有循环。

def func():
    im1 = Image.open("C:\Users\Poos\Desktop\G\green_pixel.bmp")
    A = list(im1.getdata())

    x = 0
    y = 0

    im2 = ImageGrab.grab()
    B = list(im2.getdata())

    for x in range(0,1024, 50):
        for y in range(0,600, 20):
        if(B != A):
            im3 = im2.crop((x,y,x+1,y+1))
            B = list(im3.getdata())
            print(x, y)

        else:
            print("hooray!")
            return

        return