我注意到以下代码在 Python 中是合法的。我的问题是为什么?有具体原因吗?
n = 5
while n != 0:
print n
n -= 1
else:
print "what the..."
Many beginners accidentally stumble on this syntax when they try to put an if
/ else
block inside of a while
or for
loop, and不要正确缩进 else
。解决方案是确保 else
块与 if
,假设您打算将它们配对。这个问题解释了 _为什么它没有导致语法错误_,以及 结果代码的含义。 另请参阅 我收到 IndentationError。我如何解决它? ,对于报告语法错误的 _情况_。
原文由 Ivan 发布,翻译遵循 CC BY-SA 4.0 许可协议
else
子句仅在您的while
条件变为假时执行。如果你break
在循环之外,或者如果引发异常,它不会被执行。考虑它的一种方法是将其视为关于条件的 if/else 结构:
类似于循环构造:
一个例子可能是这样的: