擅长:python、mysql、java
<p>它没有返回<code>SaSmith</code>,因为递归部分没有被返回,所以如果<code>x</code>为真,则函数返回{<cd3>}。添加一个<code>return</code>应该可以修复:</p>
<pre><code>def creative_name(fname, lname, n=1):
if n > len(fname): return None
uname = fname[:n] + lname
x = active_directory.find_user(uname)
if x: return creative_name(fname, lname, n+1)
else: return uname
</code></pre>
<p>一。在</p>
<p>注意:如果<code>active_directory.find_user(fname[:n]_lname)</code>对于每个<code>n</code>为真,则第一行防止无限循环。在</p>
<p><em>我同意@Randall的观点,即使用<code>for</code>循环可能更具可读性,在上面的例子中,它返回<code>None</code>。</em></p>