Python函数,该函数将查找并计算给定字符串中的元音

Python函数,该函数将查找并计算给定字符串中的元音,python,Python,我正在尝试用python编写一个代码,该代码将查找并计算任何给定字符串中的元音数。我的函数输出0个元音,不管是什么。有什么建议吗 txt = input("Type text: ").lower() def findVowels(): global txt vowels = 0 for letter in txt: if letter == 'aeiouy': vowels += 1 return vowels pri

我正在尝试用python编写一个代码,该代码将查找并计算任何给定字符串中的元音数。我的函数输出0个元音,不管是什么。有什么建议吗

txt = input("Type text: ").lower()

def findVowels():
    global txt
    vowels = 0
    for letter in txt:
        if letter == 'aeiouy':
            vowels += 1
    return vowels


print(findVowels())
元音数=0,无论发生什么

尝试如下:

def findVowels(txt):
    return sum(1 for t in txt if t in 'aeiouy')

您正在检查
字母
是否等于整个字符串
'aeiouy'
。而是检查
字母
是否在
字符串中

if letter in 'aeiouy':
此外,通过将输入文本传递给函数,可以避免使用全局变量

txt=input(“键入文本:”).lower()
def findVowels(txt):
元音=0
对于txt格式的字母:
如果字母'aeiouy':
元音+=1
返回元音
打印(findVowels(txt))

Double
def
你甚至可以这样做:
返回和(t在'aeiouy'中表示t在txt中)
为什么不能呢?@schwobaseggl感谢你的提醒,你可以,但在将
bool
转换为
int
时,速度往往较慢。这可能与代码无关,但从技术上讲,“y”不是元音。@code在英语中是“y”当它不是一个单词中音节的第一个字母时,被认为是元音。也就是说,它是单词“yup”中的辅音,但却是单词“symbol”中的元音。我很想解释一下,但这不是最好的平台。你好,先生!在我的语言中,挪威语的“y”是元音,所以它在那里