這些循環組之間有什麼區別?如何突破python中的嵌套循環?
for i in range(0,5):
print i,'i'
for x in range(0,4):
print x,'x'
break
和
for i in range(0,5):
print i,'i'
for x in range(0,4):
print x,'x'
break
什麼是break語句的範圍?
這些循環組之間有什麼區別?如何突破python中的嵌套循環?
for i in range(0,5):
print i,'i'
for x in range(0,4):
print x,'x'
break
和
for i in range(0,5):
print i,'i'
for x in range(0,4):
print x,'x'
break
什麼是break語句的範圍?
A break
只會突破它內部的最內層循環。您的第一個示例從外部循環中斷,第二個示例僅打破內部循環。
要打破多個循環,您需要使用變量來跟蹤您是否試圖退出並在每次發生父循環時檢查它。
is_looping = True
for i in range(5): # outer loop
for x in range(4): # inner loop
if x == 2:
is_looping = False
break # break out of the inner loop
if not is_looping:
break # break out of outer loop
在第一個代碼中,'break'屬於外部'for'。因此內部的'for'循環將被執行而沒有任何中斷,而外部的'for'將只執行一次。
在第二個代碼中,'break'屬於'for'的內部。所以外部'for'將被執行而不會有任何中斷,而內部'for'將在每次迭代中只執行一次。
區別在於縮進。
在Python中,您可以爲循環編寫一個else
子句,該循環在循環中不發生中斷時執行,或者循環自然終止時執行。 有時你可以使用它來打破多個循環。
for i in some_range:
for j in some_other_range:
if need_break(i, j):
break
else:
continue
break # break happens in inner loop, break outer loop too.
你也可以用一個例外做到這一點,是這樣的:
class ForLoopBreak(Exception):
pass
try:
for i in range(5):
for j in range(5):
print "({}, {})".format(i, j)
if i == 1 and j == 1:
# Break out of both for loops for this case
raise ForLoopBreak()
except ForLoopBreak:
pass
# Output
(0, 0)
(0, 1)
(0, 2)
(0, 3)
(0, 4)
(1, 0)
(1, 1)
請編輯您的問題,並使用工具格式化你的代碼。 – Soviut