[英]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.