元音序列

2024-10-01 11:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

这不是作业题,是备考题。在

我应该定义一个函数syllables(word)来计算 一个词的用法如下:

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

•单词中的词尾e不是音节(或元音序列的一部分) 第页)。在

我不需要处理任何特殊情况,例如在a 单音节单词(例如“be”或“bee”)。在

>>> syllables(’honour’)
2
>>> syllables(’decode’)
2
>>> syllables(’oiseau’)
2

我应该在这里使用正则表达式还是只列出理解?在


Tags: 函数用法定义情况序列be单词word
3条回答

我觉得正则表达式对于这个问题很自然。(我认为非正则表达式的答案需要更多的编码。我使用两个字符串方法“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)

哪个打印:

^{pr2}$

注意,“decode”比“decode”多了一个音节(这很奇怪,但符合您的定义)。在

问题。这对你有什么帮助?学习问题的重点不是你自己解决吗?在你的问题中贴出一个失败的尝试,你将来可能会得到更多的好处,这样你就可以准确地知道你的不足之处。在

我不认为regex是正确的解决方案。在

将每个字符串视为一个列表来编写此文件似乎非常简单。在

使用regexp-大多数语言都允许您计算字符串中regexp的匹配数。在

然后通过检查最右边的匹配组来特例终端e。在

相关问题 更多 >