2017-03-03 56 views
0

這是一個讀取名稱長度爲寬度和高度的熊貓數據框的示例代碼,所有這些名稱都包含每個名稱變量下面的浮點數。我試圖返回各自的變量下的每個浮動,但我似乎無法弄清楚如何返回多個變量。任何幫助,將不勝感激。返回多個函數

def volume(length, width, height): 
    for i in pdf[length]: 
     return (i) 
    for i in pdf[width]: 
     return (i) 
    for i in pdf[height]: 
     return (i) 

打印(體積( '長度', '寬度', '高度'))

+0

在開始時是否缺少'def'?而且不應該縮減代碼的其餘部分嗎? – Barmar

+0

您不能在函數中多次使用'return'。你應該返回一個包含所有值的元組。不過,目前還不清楚爲什麼你有'for'循環。 – Barmar

+1

[你如何在Python中返回多個值?](http://stackoverflow.com/questions/354883/how-do-you-return-multiple-values-in-python) –

回答

1

可以返回的元組或字典,並將其分配給變量:

隨着一個元組:

volume(length, width, height): 
    .... 
    return (pdf[length], pdf[width], pdf[height]) 

,然後調用函數拆包元組,像這樣:

l, w, h = *volume(x, y, z) 

或字典

return {'length': pdf[length], 'width': pdf[width], 'height': pdf[height]} 

在這種情況下,可以將結果分配到單個字典可變,通過鍵引用每個值(例如:result['width']

最後,也可以使用一個具有3個獨立成員變量的對象。如果您認爲爲您的課程定義課程是值得的。

+1

它不應該'返回pdf [長],...'? – Barmar

+0

是的。我不清楚他是否只返回三維,或者是三維的列表。 for循環令我困惑。我將展開代碼,並等待OP澄清 – JavoSN

+0

也讓我困惑。 – Barmar