2012-10-27 21 views
0

我希望函數在計算單詞中的元音時返回兩種類型的值,即字符串和整數。在調用時,我得到的只是y值,而不是x。你能解釋爲什麼會發生這種情況嗎?Python函數不會返回第二個值

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'

回答

2

如果你想同時,嘗試返回一個元組

return x,y 

return永遠離開當前功能,所以以後的代碼永遠不會被執行。

+0

是的,它工作的方式。所以返回命令只是返回循環中的值,甚至沒有注意到第二個返回語句? – minerals

+0

@礦物質:正確。讀'return x'爲'return x到我被調用的地方,現在就離開這個地方!' – Junuxx

2

你必須使用一個元組返回多個值:

return (y, x) 

其中括號通常是可選的。

調用此功能,您可以再次解開兩個值:

vowels, count = cnt_vow('hello') 

一旦Python看到return語句功能執行結束,第二次發言從未達到。

1

一旦你的代碼碰到第一個return語句,它立即返回指定的值。

什麼你要找的是:

return y, x 
相關問題