这些循环组之间有什么区别?如何突破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