我是一个全新的程序员,第一次学习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
发布于 2018-06-03 08:19:16
我们可以将其简化为如下所示:
代码:
def count_vowels(sentence):
return sum(char in set('aeiouAEIOU') for char in sentence)
sum()
是一种快速添加序列的方法。这之所以有效,是因为True
是1
,而False
是0
。
测试代码:
print(count_vowels('jkdbfjksdbvuihejsdvknweifn'))
结果:
5
发布于 2018-06-03 08:12:42
尝试用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
https://stackoverflow.com/questions/50662199
复制相似问题