python while...else和for...else语法


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 in :
    语句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