Python函数不返回第二个值

时间:2012-10-27 15:17:23

标签: python

我希望函数在计算单词中的元音时返回两种类型的值,字符串和整数。在调用时,我只得到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'

3 个答案:

答案 0 :(得分:2)

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

return x,y

return总是保留当前函数,因此后面的代码永远不会被执行。

答案 1 :(得分:2)

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

return (y, x)

其中括号通常是可选的。

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

vowels, count = cnt_vow('hello')

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

答案 2 :(得分:1)

一旦你的代码命中第一个return语句,它就会立即返回指定的值。

您正在寻找的是:

 return y, x