一.python的嵌套循环
- 嵌套循环: 在一个循环语句内,再包含另一个循环语句
- 语法结构
while 条件1:
外循环代码块
while 条件2:
内循环代码块
#-------------------------------
for 变量1 in 序列1:
外循环代码块
for 变量2 in 序列2:
内循环代码块
#-------------------------------
while 条件1:
外循环代码块
for 变量2 in 序列2:
内循环代码块
#-------------------------------
for 变量1 in 序列1:
外循环代码块
while 条件2:
内循环代码块
循环嵌套结构,执行流程为:
(1) 当外层循环条件为True时,则执行其循环体中语句(包含普通程序块和内循环)
(2)当内层循环的循环条件为True时执行此循环的循环体,直到内层循环条件为Fasle,跳出内层循环
(3)回到外层循环,如果外循环的条件仍为True,则进入第(2),直到外层循环的条件为False
(4)当外层循环的循环条件为False时,则整个嵌套循环执行完毕
一句话: 外层循环执行一次, 内层循环从头到尾执行一轮
二.嵌套循环跳出
python里使用break跳出循环,但是一次只能终止当前的循环,如果break在内层循环里,是可以把内层循环终止,但是外层循环还是会继续,如果在内层循环里把内层循环终止的同时也把外层循环终止掉呢?
案例:如何让内层循环终止的同时把外层循环也终止掉?
while True: # 外层循环
num1 = input('输入一个数:')
while True: # 内层循环
num2 = input('输入另一个数:')
if num2 == '666':
print('哈哈哈哈')
break
如上代码所示,想要在内层循环里,输入666时,此时num2 = ‘666’,会执行print(‘哈哈哈哈’),执行break语句,把内层循环终止掉,但是外层循环依旧还是会继续,依旧会进入到num1 = input(‘输入一个数:’)语句,此时我们可以引入一个变量flag,赋值初始值为False,当执行了print(‘哈哈哈哈’)语句后,重新赋值flag = True,外层循环体加入if语句,控制是否break,就可以实现在内层循环控制内层循环终止与外层循环终止
# flag赋值初始值为False
flag = False
while True: # 外层循环
# 当flag为True时才执行break
if flag:
break
num1 = input('输入一个数:')
while True: # 内层循环
num2 = input('输入另一个数:')
if num2 == '666':
print('哈哈哈哈')
flag = True
break
也可以使用for…else…的特性来跳出循环
while True: # 外层循环
num1 = input('输入一个数:')
for i in range(10): # 内层循环
num2 = input('输入另一个数:')
if num2 == '666':
print('哈哈哈哈')
break
else:
continue
break