首页 > 解决方案 > 你怎么知道一个单词中有多少个元音?

问题描述

我有一个爱情计算器,它显示了 name1 和 name2 有多少恋爱(100%),这取决于元音的数量是否匹配。到目前为止,这是我的代码:

name1 = input("Please type Name 1.\n")
name2 = input("Please type Name 2.\n")
vowels1 = 0
vowels2 = 0
VOWELS = 'aeiou'
def up_it(word):
    letters = []
    for letter in name1:
        if letter.lower() in VOWELS:
            vowels1 = 1+vowels1 
print("You have",vowels1,"vowels.")

它没有显示 name1 中有多少个元音。你如何让它显示 name1 中有多少个元音?

标签: python

解决方案


您应该创建一个直接返回解决方案的函数,而不是定义一个修改全局变量的函数。这样它就不会依赖于一些脆弱的全球国家。

def count_vowels(word):
    vowels = {'a', 'e', 'i', 'o', 'u'}  # I use a set here rather than a list because
                                        # sets have very fast membership checks.
    count = 0
    for letter in word:
        if letter in vowels:
            count += 1
    return count

然后你可以简单地做:

num_vowels = count_vowels(name1)

可能值得注意的是,count_vowels可以简化为单行:

def count_vowels(word):
    return sum(lett in {'a', 'e', 'i', 'o', 'u'} for lett in word)

推荐阅读