while...else:while判断条件不成立时,执行else语句;
语法:
while 判断条件:
语句1....
else:
语句2....
i初始值为2,i>0成立,则执行while语句;当i=0,i>0不成立,则就会执行else语句打印no。
i = 2 while i > 0: print('ok') i -= 1 else: print('no') #执行结果 ok ok no
当i==1时跳出循环,是使用break跳出循环,并没有影响i的值,i>0还是成立,所以不会去执行else,执行结果就不会打印no。
i = 2 while i > 0: print('ok') i -= 1 if i == 1: break else: print('no') #执行结果 ok
for...else:for循环完成时,执行else语句;
语法:
for <var> in <seq>:
语句1...
else:
语句2...
代码中完成了两次循环,所以打印两次ok后,直接运行else语句打印出no。
for i in range(1,3): print('ok') else: print('no') #执行结果 ok ok no
代码中当i==1时,执行break跳出for循环,所有的循环并没有执行完成,所以不会执行else语句。
for i in range(1,3): print('ok') if i == 1: break else: print('no') #执行结果 ok