Python for-else关系

Sri*_*ini 2 python syntax

我可以运行下面的python脚本而不会出错.

for n in range(3):
    print n
else:
    print "done"
Run Code Online (Sandbox Code Playgroud)

但我对其他没有匹配的问题感到困惑.
它没有任何意义.
有人可以解释为什么这有效吗?

Ign*_*ams 7

else条款forwhile 仅在循环正常退出执行,即break永远不会运行.

for i in range(20):
  print i
  if i == 3:
    break
else:
  print 'HAHA!'
Run Code Online (Sandbox Code Playgroud)

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

try:
  a = 1 / 2
except ZeroDivisionError:
  do_something()
else:
  print '/golfclap'
Run Code Online (Sandbox Code Playgroud)