这不是一个家庭作业问题,而是一个考试准备问题.
我应该定义一个功能音节(单词)来计算音节的数量
用以下方式说一句话:
•最大元音序列是一个音节;
•单词中的最后一个不是音节(或者是元音序列,它是一个部分
的).
我不需要处理任何特殊情况,例如a.中的最终情况
单音节词(例如,’be’或’bee’).
>>> syllables(’honour’)
2
>>> syllables(’decode’)
2
>>> syllables(’oiseau’)
2
我应该在这里使用正则表达式还是只列出理解?
最佳答案 我发现这个问题的正则表达式很自然. (我认为非正则表达式的答案需要更多编码.我使用两种字符串方法,’lower’和’endswith’来使答案更清晰.)
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)
哪个印刷品:
honour 2
decode 2
decodes 3
oiseau 2
pie 1
请注意,“解码”比“解码”还有一个音节(这很奇怪,但符合您的定义).
题.这对你有什么帮助?研究问题的重点不是你自己完成的吗?通过在您的问题中发布失败尝试,您将来可能会获得更多好处,因此您可以准确了解您缺少的位置.