2

我可以运行以下 python 脚本而不会出错。

for n in range(3):
    print n
else:
    print "done"

但是我对没有匹配 if 的 else 感到困惑。
它没有任何意义。
有人可以解释为什么这样做吗?

4

2 回答 2

7

andelse子句仅在循环正常退出时执行,即从不运行。forwhile break

for i in range(20):
  print i
  if i == 3:
    break
else:
  print 'HAHA!'

并且只有在没有发生异常时才会执行else子句。try

try:
  a = 1 / 2
except ZeroDivisionError:
  do_something()
else:
  print '/golfclap'
于 2013-08-08T02:25:21.147 回答
3

的主体在循环完成else后执行,但前提是循环没有被语句提前终止。forforbreak

于 2013-08-08T02:25:37.767 回答