缺少 1 个必需的位置参数 - Python
Missing 1 required positional argument - Python
TypeError: sequence() missing 1 required positional argument: 'n', sequence()
显然在使用 sequence(n-1) + sequence(n-2)
时 n 没有使用函数的值,我该怎么做才能解决这个问题?
memo = {0:0,1:1}
def sequence(type, n):
if type == "fibonacci":
if not n in memo:
memo[n] = sequence(n-1) + sequence(n-2)
else:
return memo[n]
试试这个:
sequence(type, n-1) + sequence(type, n-2)
错误很明显,函数 sequence
需要两个参数,但您只传递了一个。作为旁注,您应该删除 else
,并确保 return memo[n]
在最后执行 - 因为您的函数必须 always return一个值,否则递归将不起作用。
TypeError: sequence() missing 1 required positional argument: 'n', sequence()
显然在使用 sequence(n-1) + sequence(n-2)
时 n 没有使用函数的值,我该怎么做才能解决这个问题?
memo = {0:0,1:1}
def sequence(type, n):
if type == "fibonacci":
if not n in memo:
memo[n] = sequence(n-1) + sequence(n-2)
else:
return memo[n]
试试这个:
sequence(type, n-1) + sequence(type, n-2)
错误很明显,函数 sequence
需要两个参数,但您只传递了一个。作为旁注,您应该删除 else
,并确保 return memo[n]
在最后执行 - 因为您的函数必须 always return一个值,否则递归将不起作用。