<p>因为你太早了。Python在一个关闭函数中遇到<code>return</code>;它将立即返回被调用方(<em>调用<code>stemming</code></em>的函数)。在</p>
<p>将函数<code>stemming</code>更改为:</p>
<pre><code>def stemming (verb):
suffixs = ["ing", "ed", "es", "s"]
for suffix in suffixs:
stem = verb.replace(suffix, "")
return stem # XXX: Moving the return outside of the loop
</code></pre>
<p>您也不需要在这里增加<code>i</code>;它甚至不是一个整数;您正在遍历一个字符串列表。在<code>suffixes</code>(<em>I重命名了一些变量以使其更具可读性)上的每次迭代都将是列表中指定的字符串。在</p>
<hr/>
<p>如果您真的想使用计数器变量来索引<code>suffixes</code>:</p>
^{pr2}$
<p><strong>但是</strong>;这实际上是不必要的,因为您可以在列表上使用普通的、更具python风格的迭代:<code>for suffix in suffixes:</code></p>
<hr/>
<p>我也相信你的职能是:</p>
<p>代码:</p>
<pre><code>def stemming(verb):
suffixs = ["ing", "ed", "es", "s"]
for suffix in suffixs:
verb = verb.replace(suffix, "")
return verb
</code></pre>
<p>输出:</p>
<pre><code>>>> stemming("singing")
''
</code></pre>
<p>想想看!:)</p>
<hr/>
<p>另外,作为旁白,你真的应该使用<a href="https://pypi.python.org/pypi/nltk" rel="nofollow">nltk</a>来进行词干分析,除非你只是为了教育目的而这样做。在</p>
<p>请参见:<a href="http://www.nltk.org/api/nltk.stem.html" rel="nofollow">^{<cd9>}</a></p>
<p><strong>示例:</strong></p>
<pre><code>>>> from nltk.stem.lancaster import LancasterStemmer
>>> st = LancasterStemmer()
>>> st.stem("singing")
'sing' # NOT an empty string!!!
>>> st.stem("wanting")
'want'
>>> st.stem("wanted")
'want'
</code></pre>