while 后面要跟一个条件判断句,如果条件为真,则继续执行
示例:
i = 0 while i < 3: print(i) i += 1
当 while 后面的条件为 False 时,就会执行 else 中的内容
示例:
i = 0 while i < 3: print(i) i += 1 else: print("in else")
输出结果
0 1 2 in else
当 while 后面的条件为 True 时,即使执行到 break 也不会执行 else 中的内容
i = 0 while True: print(i) if i == 3: break i += 1 else: print("in else")
输出结果
0 1 2 3
in 后面一定要跟一个可迭代对象
什么是可迭代对象?
for i in range(3): print(i)
当循环完整跑完,就会执行 else 中的内容
示例:
for i in range(5): if i == 3: continue print(i) else: print("in else")
输出结果:
0 1 2 4 in else
for i in range(5): if i == 3: break print(i) else: print("in else")
输出结果:
0 1 2
如果在循环中调用 break, 则循环没有完整跑完,就不会执行 else 中的内容,但是如果调用了 continue, 循环完整跑完,会执行 else 中的内容
借助这个原理,可以实现多层循环的跳出
示例:
for i in range(3): for j in range(3): if i == 1 and j == 2: break print(i, j)
输出结果:
0 0 0 1 0 2 1 0 1 1 2 0 2 1 2 2
如果在内层循环里面 break 只能结束内存循环,无法结束外层循环
示例:
for i in range(3): for j in range(3): if i == 1 and j == 2: break print(i, j) else: continue break
输出结果:
0 0 0 1 0 2 1 0 1 1
内层循环的 break 导致 else 中的 continue 没有被执行,而是执行到了外层循环的 break, 外层循环提前结束