簡體   English   中英

打破循環-Python

[英]Breaking outside the loop - Python

這對其他人可能是顯而易見的。

使用a > 10會按預期中斷loop ,但是a == 10則不會。 為什么會這樣呢? 我正在使用Python 3.5

代碼段:

from PIL import Image

im = Image.open('1.jpg')
px = im.load()
width, height = im.size

for a in range(width):
   for b in range(height):
      if a == 10:
         break
      print(a, b)

編輯:當圖像寬度達到10時,我試圖停止迭代。輸出看起來像這樣:

...
9 477
9 478
9 479
10 0
10 1
10 2
10 3
...

您應該將a == 10放在外部循環中,因為現在它只會破壞內部循環。

for a in range(width):
   if a == 10:
      break
   for b in range(height):
      print(a, b)

根據您的需要,您可能希望將其放在for b in range(..循環)中for b in range(..后面。

if移到內部循環之外:

for a in range(width):
   if a == 10:
      break
   for b in range(height):
      print(a, b)

您只剩下內循環,而外循環一直運行; 因此當到達11時,內部循環將再次開始打印。

a > 10您沒有問題,因為所有內部循環都立即停止了,但它們確實都開始了。

您可以使用min(...)預先確定要循環多少次,而不是使用break語句,例如:

for a in range(min(10, width)):
    for b in range(height):
        print(a, b)

此運行10次,具有值a從0到9 -除非該寬度小於10,在這種情況下它循環width次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM