【发布时间】:2011-03-18 18:41:32
【问题描述】:
我注意到以下代码在 Python 中是合法的。我的问题是为什么?有什么具体原因吗?
n = 5
while n != 0:
print n
n -= 1
else:
print "what the..."
【问题讨论】:
-
@detly:那是因为大多数人都避免这种结构。 :) 我相信 Guido 在 Py3k 过程中提到,至少,为此使用选择
else这个词是一个非常糟糕的主意,他们不会再做这些了。 -
@Nicholas Knight - 是的,虽然很诱人,但可能只有我乍一看就明白了。任何其他可怜的 sap 都必须去查看语言规范,或者及时返回并在 Sta-heeeeey 上发布问题......
-
选择 'else' 背后的想法是,这个结构通常与 while 循环内的 'if X: break' 一起使用。由于如果我们不跳出循环,就会执行“else”子句,因此它与“if”形成了一种“else”。
-
他们应该将其重命名为
after:。 -
@naught101 - After 也不太合适,因为如果您使用“break”或“return”退出循环,它将不会执行。我总是告诉那些努力记住用法的人,“如果你要跳出循环,你就有机会在你的 break 语句之前做一些事情。如果你用尽了你的集合(在 for 循环中)或打破你的循环条件(在一个while循环中),'else'子句是你结束的地方。”
标签: python syntax while-loop if-statement