擅长:python、mysql、java
<p>我没有在调试器中运行您的代码,所以我不能确切地看到<em>堆栈跟踪</em>,但这是因为您递归地调用了<code>f()</code>两次。这似乎是对字符串的过度操作导致意外的转换。如果要递归地反转字符串,下面的代码相当流行:</p>
<pre><code>def f(s):
if len(s) == 0:
return s
return f(s[1:]) + s[0]
</code></pre>
<p><strong>样本结果:</strong></p>
^{pr2}$
<p>既然如此,我想这是一个学习练习?</em>),一种更为python的方法来反转字符串是使用<a href="https://docs.python.org/2/whatsnew/2.3.html#extended-slices" rel="nofollow">extended slice syntax</a><code>[being:end:step]</code>。在</p>
<pre><code>print 'abcd'[::-1]
>>> dcba
</code></pre>