功能无法提供理想的结果

时间:2019-03-24 06:09:11

标签: python-3.x

我正在尝试为Fibonacci系列定义一个函数,但是代码不起作用。我无法解决问题,需要帮助来解决问题。每当我尝试调用此函数时,系列的最后一个值总是大于n,这是我不希望的

 def fib(n):
        Series = [0,1]
        if n>1:
            while Series[-1]<=n:
                c=Series[-2]+Series[-1]
                Series.append(c)
                if Series[-1]>n:
                break
            return Series

3 个答案:

答案 0 :(得分:2)

您的代码确实很好,只是return的缩进是错误的。只要正确对齐即可。

def fib(n):
    Series = [0,1]
    if n>1:
        while Series[-1]<=n:
            c=Series[-2]+Series[-1]
            Series.append(c)
    return Series

答案 1 :(得分:0)

您需要这样的东西吗?

def fibo(n):
    l = [0,1]
    for i in range(2,n+1): 
        l += [l[i-1] + l[i-2]]
    return l

答案 2 :(得分:0)

如果您想使斐波那契数列最多为n:

def fib(n):
    series = [0,1]
    if n > 1:
        c = 1
        while c <= n:
            series.append(c)
            c = series[-2] + series[-1]
    return series