擅长:python、mysql、java
<p>我觉得正则表达式对于这个问题很自然。(我认为非正则表达式的答案需要更多的编码。我使用两个字符串方法“lower”和“endswith”使答案更清楚。)</p>
<pre><code>import re
def syllables(word):
word = word.lower()
if word.endswith('e'):
word = word[:-1]
count = len(re.findall('[aeiou]+', word))
return count
for word in ('honour', 'decode', 'decodes', 'oiseau', 'pie'):
print word, syllables(word)
</code></pre>
<p>哪个打印:</p>
^{pr2}$
<p>注意,“decode”比“decode”多了一个音节(这很奇怪,但符合您的定义)。在</p>
<p>问题。这对你有什么帮助?学习问题的重点不是你自己解决吗?在你的问题中贴出一个失败的尝试,你将来可能会得到更多的好处,这样你就可以准确地知道你的不足之处。在</p>