如何解决 python 中的 else 语法错误

How to solve this else syntax error in python

以下是为 n 个元素生成斐波那契数列的代码, 有注释的else是导致错误的部分

def solve(n):
# write your code here,end=
a=[0,1]
b=[]
if n==0:
    b.append(0)
return b    
else:#THE ERROR PART
    for i in range(n-1):
        a.append(a[i+1]+a[i])
    return a

return 的缩进需要更正。

def solve(n):
    # write your code here,end=
    a=[0,1]
    b=[]
    if n==0:
        b.append(0)
        return b    #edit here
    else:#THE ERROR PART -> no more error
        for i in range(n-1):
            a.append(a[i+1]+a[i])
        return a

solve(10)

输出

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

这是因为 else 上面的 return 语句应该在 if 语句中缩进。它目前在 if 声明之外。

def solve(n):
# write your code here,end=
a=[0,1]
b=[]
if n==0:
    b.append(0)
    return b    //update here
else:#THE ERROR PART
    for i in range(n-1):
        a.append(a[i+1]+a[i])
    return a

注意第 8 行的 return 的缩进,只是退出程序使 else 无关紧要