关于语法:Python for-else关系

Python for-else relationship

本问题已经有最佳答案,请猛点这里访问。

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

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

但我对其他没有匹配的if感到困惑。这没有道理。有人能解释一下为什么会这样吗?


else条款所forwhile只读executes如果exits normally回路,即break是永远的运行。 </P >

1
2
3
4
5
6
for i in range(20):
  print i
  if i == 3:
    break
else:
  print 'HAHA!'

else条款所try只读executes如果没有例外发生。 </P >

1
2
3
4
5
6
try:
  a = 1 / 2
except ZeroDivisionError:
  do_something()
else:
  print '/golfclap'


在车身的else是executed在for回路IS DONE只读的,但如果for回路不Terminate早期用breakstatements。。。。。。。 </P >