擅长:python、mysql、java
<p>让我们澄清这个问题:你似乎在问为什么这个代码:</p>
<pre><code>def sumList(array):
items = len(array)
if items == 0:
return 0
if items == 1:
return array[0]
return array[0] + sumList(array[1:])
</code></pre>
<p>如果/当我们删除<em>第二个</em>条件表达式时仍然有效:</p>
<pre><code>def sumList(array):
items = len(array)
if items == 0:
return 0
#if items == 1:
# return array[0]
return array[0] + sumList(array[1:])
</code></pre>
<p>@Tomothy32提供的答案告诉我们最后一行最终会变成:</p>
<pre><code>return array[0] + sumList([])
</code></pre>
<p>由于您的<em>第一个</em>条件表达式,它变成:</p>
<pre><code>return array[0] + 0
</code></pre>
<p>在Python 3中,我们可以简单地表示为:</p>
<pre><code>def sumList(array):
if not array: # empty containers are false in boolean context
return 0
head, *tail = array # Python 2: head, tail = array[0], array[1:]
return head + sumList(tail)
</code></pre>