我理解这个结构是如何工作的:
for i in range(10):
print(i)
if i == 9:
print("Too big - I'm giving up!")
break;
else:
print("Completed successfully")
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么else在这里用作关键字,因为它表明有问题的代码仅在for块未完成时运行,这与它的作用相反!无论我如何看待它,我的大脑都无法从for语句无缝地进展到else块.对我来说,continue或者continuewith更有意义(我正在努力训练自己阅读它).
我想知道Python编码器如何在他们的脑海中读取这个结构(或者如果你愿意的话,大声朗读).也许我错过了一些会让这些代码块更容易破译的东西?
Python循环语句可能有一个else子句,当且仅当循环未被a终止时才执行该子句break.换句话说,当条件变为False(有while)或迭代器耗尽时(带for).
这个循环 - 其他构造是否源自另一种语言(理论上的或实际的)?它是否被任何较新的语言所采用?
也许我应该问问Guido的前任,但他肯定太忙了,无法进行如此徒劳的调查.;-)
相关讨论和示例: 在for循环中使用'else'的Pythonic方法