python - 你怎么知道一个单词中有多少个元音?
问题描述
我有一个爱情计算器,它显示了 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 中有多少个元音?
解决方案
您应该创建一个直接返回解决方案的函数,而不是定义一个修改全局变量的函数。这样它就不会依赖于一些脆弱的全球国家。
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)
推荐阅读
- javascript - 本文档需要 Angular 11 中的“TrustedScriptURL”分配
- linux - 如何创建一个运行五个 osmocom 脚本的 sh 脚本?
- php - 尝试在 null 上读取属性“名称”
- typescript - Aurelia Webpack 路由器使用时出错
- python - openpiv 的构建轮 (PEP 517)
- mysql - mysql 如果列为空,则选择,如果不为空,则应用条件
- flutter - flutter int got to zero
- python - “ValueError:源代码字符串不能包含空字节”错误
- c++ - wxWidget鼠标处理
- python - 如何在python中填写字典?