我是一个全新的程序员,第一次学习python很抱歉,如果我的问题不是很清楚,而且我没有使用正确的计算机科学术语。我想要做的是计算一个输入句子中的元音数量,而不必写出:
if i== 'a' or i == 'e' or i == 'i' or i == 'o' or i == 'u' or i == 'A' or i == 'E' or i == 'I' or i == 'O' or i == 'U'`
如何检查字符字符串是否在字符串中' aeiouAEIOU'只使用一行?有人可以告诉我,我在这里做错了什么吗?
到目前为止,这是我的代码。
def count_vowels (sentence):
vowels = 0
for char in sentence:
if char == 'aeiouAEIOU'.split():
vowels += 1
return vowels
答案 0 :(得分:1)
我们可以将其修改为:
def count_vowels(sentence):
return sum(char in set('aeiouAEIOU') for char in sentence)
sum()
是一种快速添加序列的方法。这有效,因为True
为1
而False
为0
。
print(count_vowels('jkdbfjksdbvuihejsdvknweifn'))
5
答案 1 :(得分:0)
尝试用==
替换in
,然后检查字符是否在元音中:
def count_vowels (sentence):
vowels = 0
for char in sentence:
if char in 'aeiouAEIOU':
vowels += 1
return vowels
print(count_vowels('Hello World!!!'))
输出:
3
尝试创建列表理解:
def count_vowels (sentence):
return len([i for i in sentence if i in 'aeiouAEIOU'])
print(count_vowels('Hello World!!!'))
输出:
3