2017-09-25 127 views
-1

我想創建一個函數,它接受下列元組a和b,並使用我已經創建的函數(成本)將它們添加到一起。對於我的問題,無論什麼成本()都沒有關係。在函數中使用參數作爲元組的函數

成本有以下參數(名稱,金額,額外,團隊)。說有人用前三個元組給我提供了a和b。如果他們不提供團隊,我只是假設團隊= 1

A =( '約翰',20,5) B =( '馬太福音',30,7)

def totalamount(a, b): 
    a=(name, amount, extra, 1) 
    b=(sign, amount, extra, 1) 
    total=cost(u)+cost(v) 
    return total 

的錯誤是說我缺少所需的位置參數。有人可以幫我解決我在這裏做錯了什麼嗎?

+0

可能'總=成本(* u)+成本(* v)'。 – Evert

+0

請注意'a =(name,amount,extra,team = 1)'是無效的Python('SyntaxError')。 – Evert

+0

啊感謝您的支持。 – GenXeral

回答

1

如果我正確地得到您的問題,您有錯誤,因爲(name, amount, extra)未在函數totalamount中定義,除了語法錯誤。

一種解決方法是檢查元組的長度ab。如果它們的長度爲3,則不提供team,否則爲。請注意,我們假設3和4是ab唯一可能的長度。

def totalamount(a, b): 
    a = a + (1,) if len(a) == 3 else a 
    b = b + (1,) if len(b) == 3 else b 
    total = cost(*a) + cost(*b) 
    return total