python – 元音序列计数

这不是一个家庭作业问题,而是一个考试准备问题.

我应该定义一个功能音节(单词)来计算音节的数量
用以下方式说一句话:

•最大元音序列是一个音节;

•单词中的最后一个不是音节(或者是元音序列,它是一个部分
的).

我不需要处理任何特殊情况,例如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

请注意,“解码”比“解码”还有一个音节(这很奇怪,但符合您的定义).

题.这对你有什么帮助?研究问题的重点不是你自己完成的吗?通过在您的问题中发布失败尝试,您将来可能会获得更多好处,因此您可以准确了解您缺少的位置.

点赞