'int' 对象不可订阅

'int' object is not subscribtable

我有以下 python 代码来获取第 n 个斐波那契数。我认为它应该工作。唯一的问题是,当我尝试在我的 linux 终端中 运行 它时,我收到一条错误消息,指出 'int' 对象不可订阅。我看不出错误是什么。我让她坐了将近一个小时来调试它。

import sys

def fibo(n):
    x = 0
    y = 1
    for i in range(n):
        x = x+y
        y = y+x
        results = x,y

    if n%2==0:
        print(results[int(n//2)][1])
    else:
        print(results[int(n//2)][2])

def main():
    var  = int(sys.argv[1])
    print(fibo(var))
main()

该错误是由于您在打印答案时尝试下标 int 而导致的。试试这个:

import sys

def fibo(n):
    x = 0
    y = 1
    results = []
    for i in range(n):
        x = x+y
        y = y+x
        results.append((x,y))

    if n%2==0:
        print(results[int(n//2)][0])
    else:
        print(results[int(n//2)][1])

def main():
    var  = int(sys.argv[1])
    print(fibo(var))
main()