<p>由于某些原因,此代码不起作用:</p>
<pre><code>def pyglatin(word):
output = ""
wordlenedit = len(word)-1
wordlen = len(word)
fixer = 0
while fixer == 0:
for i in word:
if i == 'a' or i == 'e' or i == 'o' or i == 'i' or i == 'u':
fixer = 1
else:
wordlenedit -= 1
else:
output = word[wordlenedit:wordlen:1] + '-' + word[0:wordlenedit:1] + 'ay'
return output
</code></pre>
<p>要查看问题,请单击<a href="http://labs.codecademy.com/BTk9/2#%3aworkspace" rel="nofollow">here</a>。问题似乎是它跳过了识别元音的<em>if</em>语句,但我不确定原因。这会导致一些非常奇怪的输出。在</p>
<p>如果要在不使用正则表达式的情况下执行此操作,最简单的方法是使用<code>enumerate</code>:</p>
<pre><code>def pyglatin(word):
for i, ch in enumerate(word):
if ch in 'aeiou':
return word[i:] + '-' + word[:i] + 'ay'
</code></pre>