0

我希望函数在计算单词中的元音时返回两种类型的值,字符串和整数。调用时,我只得到 y 值,而不是 x。你能解释为什么会这样吗?

def cnt_vow(s):
    x = 0
    y = ''
    for char in s:
        if char in 'aeuio':
            y = y + char
            x = x + 1

    return y 
    return x

cnt_vow('hello')

预期的:'eo', 2

曾是:'eo'

4

3 回答 3

2

如果你想要两者,请尝试返回一个元组

return x,y

return总是离开当前函数,所以它之后的代码永远不会被执行。

于 2012-10-27T15:18:54.443 回答
2

您必须使用元组返回多个值:

return (y, x)

其中括号通常是可选的。

调用此函数时,您可以再次解压缩这两个值:

vowels, count = cnt_vow('hello')

一旦 python 看到一个 return 语句,函数执行就结束了,第二个语句永远不会到达。

于 2012-10-27T15:19:10.500 回答
1

一旦您的代码遇到第一个 return 语句,它就会立即返回指定的值。

您正在寻找的是:

 return y, x
于 2012-10-27T15:19:14.490 回答