【问题标题】:Python for-else relationship [duplicate]Python for-else关系[重复]
【发布时间】:2013-08-09 15:06:16
【问题描述】:

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

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

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

【问题讨论】:

标签: python syntax


【解决方案1】:

forwhileelse 子句只有在循环正常退出时才会执行,即永远不会运行break

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

tryelse 子句只有在没有异常发生时才会执行。

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

【讨论】:

  • +1 用于扩展原始问题,展示它如何与try一起使用
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2013-01-05
    • 2021-12-23
    相关资源
    最近更新 更多