问题是您给它提供了大写的字符串,但是只比较了小写的值。可以通过添加word = word.lower()
到函数的开头来解决此问题。
def syllable_count(word):
word = word.lower()
count = 0
vowels = "aeIoUy"
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 count == 0:
count += 1
return count
print(syllable_count('HAIRY')) # prints "2"