当not l
我们通过一个空列表或达到我们的基本情况时,请n
与我们的test
数字进行比较,如果您想要一个空列表返回 True 更改test=-1
为test=0
:
def function(l, n=0, test=-1):
if not l:
return n == test
else:
n += l[0]
return function(l[1:], n, test)
In [2]: function([1,2,3],test=6)
Out[2]: True
In [3]: function([1,2,3],test=5)
Out[3]: False
In [4]: function([1,2,3])
Out[4]: False
In [5]: function([])
Out[5]: False
如果您希望一个空列表返回 False ,您可以检查该函数已被调用多少次,然后比较 n 以进行测试或返回 False :
def function(l, n=0, test=0, calls=0):
if not l:
return n == test if calls > 0 else False
else:
n += l[0]
calls += 1
return function(l[1:], n, test,calls)
如果您只想传递一个参数,则要测试的数字:
def function(l, test, n=0, calls=0):
if not l and calls == 0: # changed for jython
return False
if not l:
return n == test
else:
n += l[0]
calls += 1
return function(l[1:],test,n, calls)