缺少1个必需的位置参数 - Python

时间:2015-04-01 16:50:31

标签: python recursion types memoization

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]

1 个答案:

答案 0 :(得分:2)

试试这个:

sequence(type, n-1) + sequence(type, n-2)

错误是显式的,函数sequence期待两个参数,但是你只传递一个。作为旁注,您应该删除else,并确保最后执行return memo[n] - 因为您的函数必须始终返回值,否则递归获胜不行。