2017-09-25 97 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