微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐