擅长:python、mysql、java
<p>在这条特殊的线路上:</p>
<pre><code>if numbers[start] > numbers[start+1]:
</code></pre>
<p>数字[start+1]引用的是列表中不存在的元素(数组边界之外)。在</p>
^{pr2}$
<p>在这行代码中,您将向列表中添加数字,直到列表长度等于最大长度。假设maxList等于10。一旦列表退出此循环,它将包含10个元素。在</p>
<pre><code> while start != maxList:
if numbers[start] > numbers[start+1]:
#extra code here
start = start + 1
</code></pre>
<p>在这个while循环中,遍历数组的每个元素,并每次递增start变量。如果maxList等于10,一旦start=9,while循环求值为9!=10(开始!=maxList)并继续。下一个if语句if numbers[start]>;numbers[start+1]然后尝试比较if numbers[9]>;numbers[10]。Python中的列表和数组索引从0开始,因此,当您试图引用位于数字[10]的元素时,您引用的是列表中不存在的第11个值。这是一个常见的“逐个关闭”错误,您将在您的编程冒险中经常遇到!:)要更正此问题,只需将while循环更改为:</p>
<pre><code>while start <= maxList:
</code></pre>