我注意到以下代码在 Python 中是合法的。我的问题是为什么?有什么具体原因吗?
n = 5 while n != 0: print n n -= 1 else: print "what the..."
在 Python 中,循环else中的子句while并不常用,但确实是合法的,并且有特定的用途。下面是它的工作原理以及它为什么这样构造:
else
while
while condition: # Loop body else: # Else block
循环自然终止后while(即条件变为False),else将执行该块。如果使用过早退出循环break,else则跳过该块。
False
break
目的:
自然终止:当while条件变为时False,Python 执行该else块。当你想在循环正常完成后不间断地执行某些操作时,这很有用。
无条件break:如果循环打算在没有break语句的情况下完成运行,则else块提供了一种清晰易读的方式来表示循环后操作。
行为break:
如果break在循环内遇到语句while,else则会跳过该块,因为循环过早退出。
在您的示例中:
n = 5 while n != 0: print(n) n -= 1 else: print("what the...")
n
0
n``1
n != 0
"what the..."
else``wh 循环中的子句提供while了一种在循环正常完成之后(即,不会遇到 )执行代码块的方法break。此功能在特定情况下非常有用,在这种情况下,您希望在循环完全完成其迭代块后执行操作else`,并且您的循环在没有它的情况下仍能运行。
else``wh 循环中的子句提供
了一种在循环正常完成之后(即,不会遇到 )执行代码块的方法
。此功能在特定情况下非常有用,在这种情况下,您希望在循环完全完成其迭代块后执行操作