擅长:python、mysql、java
<p>出现的错误是因为混合了制表符和空格,而不是因为添加了<code>else:</code>。如果您一直使用空格,那么您的加法就起作用了:</p>
<pre><code>>>> def factorial(n):
... def fac_iter(n, accum):
... if n <= 1:
... return accum
... else:
... return fac_iter(n - 1, n * accum)
... return fac_iter(n, 1)
...
>>> factorial(5)
120
</code></pre>
<p><code>else</code>很好,但不需要。你知道吗</p>
<p>当<code>if</code>测试为<em>true</em>时,下一条指令是<code>return</code>语句,它退出函数</em>。这意味着在那之后的任何代码<em>无论如何都不会到达</em>。换言之,只有当<code>if</code>测试为假时,才到达第二<code>return</code>行,无论是否有<code>else:</code>块。你知道吗</p>