如何检查输入句子中的字符是否是给定字符串中的字符?

时间:2018-06-03 00:05:09

标签: python

我是一个全新的程序员,第一次学习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

2 个答案:

答案 0 :(得分:1)

我们可以将其修改为:

代码:

def count_vowels(sentence):
    return sum(char in set('aeiouAEIOU') for char in sentence)

sum()是一种快速添加序列的方法。这有效,因为True1False0

测试代码:

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