首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查输入句子中的字符是否为给定字符串中的字符?

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

Stack Overflow用户
提问于 2018-06-03 08:05:09
回答 2查看 93关注 0票数 1

我是一个全新的程序员,第一次学习python,如果我的问题不是很清楚,并且我没有使用正确的计算机科学术语,非常抱歉。我正在尝试做的是计算输入句子中的元音数量,而不必写出:

代码语言:javascript
复制
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‘内?有人能告诉我我哪里做错了吗?

到目前为止,这是我的代码。

代码语言:javascript
复制
def count_vowels (sentence):
    vowels = 0
    for char in sentence:
        if char == 'aeiouAEIOU'.split():
            vowels += 1
    return vowels
EN

回答 2

Stack Overflow用户

发布于 2018-06-03 08:19:16

我们可以将其简化为如下所示:

代码:

代码语言:javascript
复制
def count_vowels(sentence):
    return sum(char in set('aeiouAEIOU') for char in sentence)

sum()是一种快速添加序列的方法。这之所以有效,是因为True1,而False0

测试代码:

代码语言:javascript
复制
print(count_vowels('jkdbfjksdbvuihejsdvknweifn'))

结果:

代码语言:javascript
复制
5
票数 1
EN

Stack Overflow用户

发布于 2018-06-03 08:12:42

尝试用in替换==,然后检查该字符是否在元音中:

代码语言:javascript
复制
def count_vowels (sentence):
    vowels = 0
    for char in sentence:
        if char in 'aeiouAEIOU':
            vowels += 1
    return vowels
print(count_vowels('Hello World!!!'))

输出:

代码语言:javascript
复制
3

更短的方式

尝试创建一个列表理解:

代码语言:javascript
复制
def count_vowels (sentence):
    return len([i for i in sentence if i in 'aeiouAEIOU'])
print(count_vowels('Hello World!!!'))

输出:

代码语言:javascript
复制
3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50662199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档