擅长:python、mysql、java
<p>最好这样想:如果前面的<code>for</code>块中的所有东西都向右<em>移动,那么<code>else</code>块将始终执行。</p>
<p>在此上下文中,右</em>将意味着没有<code>exception</code>,没有<code>break</code>,没有<code>return</code>。任何从<code>for</code>劫持控件的语句都将导致绕过<code>else</code>块。</p>
<hr/>
<p>在<code>iterable</code>中搜索项目时会发现一个常见的用例,对于该用例,在找到项目时会取消搜索,或者通过以下<code>else</code>块引发/打印<code>"not found"</code>标志:</p>
<pre><code>for items in basket:
if isinstance(item, Egg):
break
else:
print("No eggs in basket")
</code></pre>
<p><code>continue</code>不会劫持来自<code>for</code>的控件,因此在<code>for</code>耗尽后,控件将继续进行<code>else</code>。</p>