我是初学者,我有一个需要帮助的问题。这是家庭作业,因此不胜感激。我看过一些类似的话题,但答案超出了我的所知范围......
作为更大程序的一部分,我需要计算文本文件中的音节数。除了音节,我什么都有。我尝试了几种不同的方法,但并不总是能捕捉到特殊情况。我应该“计算相邻元音组,不包括单词末尾的“e”。我明白这意味着什么,但我无法在我的程序中正确理解它。这是我所拥有的:::
def syllables(word):
syl = 0
vowels = 'aeiouy'
starts = ['ou','ei','ae','ea','eu','oi']
endings = ['es','ed','e']
word = word.lower().strip(".:;?!")
for vowel in vowels:
syl +=word.count(vowel)
for ending in endings:
if word.endswith(ending):
syl -=1
for start in starts:
if word.startswith(start):
syl -=1
if word.endswith('le'):
syl +=1
if syl == 0:
syl+=1
return syl
编辑:新代码
def syllables(word):
count = 0
vowels = 'aeiouy'
word = word.lower().strip(".:;?!")
if word[0] in vowels:
count +=1
for index in range(1,len(word)):
if word[index] in vowels and word[index-1] not in vowels:
count +=1
if word.endswith('e'):
count -= 1
if word.endswith('le'):
count+=1
if count == 0:
count +=1
return count