擅长:python、mysql、java
<p>这里有个提示:</p>
<p>检查外部<code>while</code>循环运行了多少次。它应该运行不止一次,对吗?不管发生什么,总会发生什么导致循环退出?</p>
<p>试着逐行检查代码,看看每一点都发生了什么。</p>
<p>外循环末尾的语句<code>b_not_sorted = False</code>将导致只执行一次后外循环退出。您需要将该语句移到代码的另一部分。试着把你脑子里的<code>b_not_sorted</code>改成<code>I_still_need_to_go_through_the_list</code>:</p>
<p>显然在第一行:</p>
<pre><code>while I_still_need_to_go_through_the_list:
</code></pre>
<p>这应该是真的,因为你根本没看清单。你不知道是不是有秩序。</p>
<p>在台词后面:</p>
^{pr2}$
<p>当然,我们还需要再做一次检查,因为我们只是对列表进行了更改,需要确保不再需要进行进一步的更改。</p>
<p>但是如果没有改变呢?<code>I_still_need_to_go_through_the_list</code>应该是{<cd6>}。如果我们把<code>I_still_need_to_go_through_the_list = False</code>右<em>在<code>for</code>循环之前,那么它将是<code>False</code><em>,除非</em>我们对列表进行更改,这正是我们想要的。</p>