Python程序输出结果不正确

问题遇到的现象和发生背景

我在用Python写一个得到一个指定长度的斐波那契数列的倒数几项时,发现我的程序要输出的结果不对,我一时看不出哪里有问题,希望能帮我看看
input:
4
5, 3
7, 0
7, 7
7, 8
expected output
5, 3, 2

13, 8, 5, 3, 2, 1, 1
invalid

遇到的现象和发生背景,请写出第一个错误信息
s=[]
def getFibonacci(n):
       if n<3:
        return 1 
       else:return getFibonacci(n-1)+getFibonacci (n-2)

N =int(input())
for i in range(N):
    line = list(map(int,input().split(", ")))
    n=line[0]
    d=line[1]
for j in range(1,n):
     s.append(getFibonacci(j))
if(n>=d and d!=0):
    for x in range(n-1,n-d,-1):
        print(s[x],end=", ")
    print(s[n-d-1])
elif(d==0):
    print()
else:
    print('invalid')



用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容

我的输入和我输出来的结果:
4
5, 3
7, 0
7, 7
7, 8
invalid
我有点不明白是为啥只输出最后一行的结果

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

缩进和输出倒数第几项代码逻辑都有问题


def getFibonacci(n):
       if n<3:
        return 1 
       else:return getFibonacci(n-1)+getFibonacci (n-2)
N =int(input())
for i in range(N):
    line = list(map(int,input().split(", ")))
    n=line[0]
    d=line[1]
    s=[]
    for j in range(1,n):
         s.append(getFibonacci(j))

    if(n>=d and d!=0):
        print(', '.join(map(str,s[-d:])))#取后n项直接切片就行了,题主原来的代码会越界
    elif(d==0):
        print()
    else:
        print('invalid')



缩进有问题

s=[]
def getFibonacci(n):
       if n<3:
           return 1 
       else:
           return getFibonacci(n-1)+getFibonacci (n-2)
N =int(input())
for i in range(N):
    line = list(map(int,input().split(", ")))
    n=line[0]
    d=line[1]
    for j in range(1,n):
         s.append(getFibonacci(j))
    if(n>=d and d!=0):
         for x in range(n-1,n-d,-1):
             print(s[x],end=", ")
         print(s[n-d-1])
    elif n<d:
          print('invalid')


for j in range(1, n) 那一行开始代码都要缩进一行放在上一个循环里

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632