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