TypeError:必须是str,而不是int;蟒蛇

时间:2018-03-19 09:40:13

标签: python arrays

我一直在尝试使用Python上的记忆为Fibonacci编写代码。

这是我的代码

def fib(n, memo):
    if memo[n] is not None:
        return memo[n]
    if n == 1 or n == 2:
        result = 1
    else:
        result = fib_2(n-1, memo) + fib_2(n-2, memo)

memo[n] = result
return result

def fib_memo(n):
    memo = [None] * (n + 1)
    return fib(n, memo)

t = input("number ")

print(fib_memo(t))

它返回: -

  

TypeError:必须是str,而不是int"在第17行 - 备忘录= [无] *(n + 1)

我似乎无法理解这里的问题。

1 个答案:

答案 0 :(得分:1)

您需要使用此t = int(input("number"))print(fib_memo(int(t)))。因为,使用input()的键盘输入默认为字符串。

这是您完整的工作代码: -

def fib(n, memo):
    if memo[n] is not None:
        return memo[n]
    if n == 1 or n == 2:
        result = 1
    else:
        result = fib(n-1, memo) + fib(n-2, memo)

    memo[n] = result
    return result

def fib_memo(n):
    memo = [None] * (n + 1)
    return fib(n, memo)

t = input("number ")

print(fib_memo(int(t)))