例
break声明
当一个break语句在循环内执行时,控制流立即“中断”循环:i = 0
while i < 7:
print(i)
if i == 4:
print("Breaking from loop")
break
i += 1
执行break语句后,不会计算循环条件。请注意, break语句只允许在语法内部循环 。函数内的break语句不能用于终止调用该函数的循环。
当满足break语句并且循环停止时,执行以下操作将打印每个数字,直到数字4 :0
1
2
3
4
Breaking from loop
break语句也可以在for循环中使用,Python提供的另一个循环结构:for i in (0, 1, 2, 3, 4):
print(i)
if i == 2:
break
执行此循环现在打印:0
1
2
请注意,由于循环结束,因此不会打印3和4。
如果循环有一个else子句 ,则在循环通过break语句终止时它不会执行。
continue声明
continue语句将跳过循环的下一次迭代,绕过当前块的其余部分但继续循环。与break , continue只能出现在循环内:for i in (0, 1, 2, 3, 4, 5):
if i == 2 or i == 4:
continue
print(i)
0
1
3
5
请注意,不打印2和4 ,这是因为continue进行下一次迭代而不是继续print(i)当i == 2或i == 4 。
嵌套循环
break和continue仅在单个循环级别上运行。以下示例将仅突破内部for循环,而不是外部while循环:while True:
for i in range(1,5):
if i == 2:
break # Will only break out of the inner loop!
Python没有立刻跳出循环的多个层次的能力-如果这种行为需要,重构一个或多个环插入函数和更换break与return可能是要走的路。
使用函数内的return作为break
return语句从函数退出,而不执行它之后的代码。
如果你在一个函数内部有一个循环,那么在循环中使用return就等于有一个break因为循环的其余代码没有被执行( 注意循环之后的任何代码都没有被执行 ):def break_loop():
for i in range(1, 5):
if (i == 2):
return(i)
print(i)
return(5)
如果你有嵌套循环, return语句将破坏所有循环:def break_all():
for j in range(1, 5):
for i in range(1,4):
if i*j == 6:
return(i)
print(i*j)
将输出:1 # 1*1
2 # 1*2
3 # 1*3
4 # 1*4
2 # 2*1
4 # 2*2
# return because 2*3 = 6, the remaining iterations of both loops are not executed