Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 使用python查找特定范围内的斐波那契数_Python 2.7_Fibonacci - Fatal编程技术网

Python 2.7 使用python查找特定范围内的斐波那契数

Python 2.7 使用python查找特定范围内的斐波那契数,python-2.7,fibonacci,Python 2.7,Fibonacci,我试图用python编写一个函数,返回特定范围内所有斐波那契数的列表,但我的代码不起作用,它只返回[0]。有什么问题 from math import sqrt def F(n): return int(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))) def Frange(x): A = [0] while max(A) < x: H = 1 for i in range(H):

我试图用python编写一个函数,返回特定范围内所有斐波那契数的列表,但我的代码不起作用,它只返回[0]。有什么问题

from math import sqrt
def F(n):
    return int(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)))


def Frange(x):
    A = [0]
    while max(A) < x:
        H = 1
        for i in range(H):
            A.append(F(i))
        H = H+1
    return A
从数学导入sqrt
def F(n):
返回int(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)))
def法兰(x):
A=[0]
当最大值(A)
H=1
设置为
while
循环中的第一条语句;因此,每次输入
for
循环,
H=1
时,只会得到
n=0
的斐波那契数

您需要在
循环之外设置
H=1
,而
循环:

def Frange(x):
    A = [0]
    H = 1
    while max(A) < x:

        for i in range(H):
            A.append(F(i))
        H = H+1
    return A
def Frange(x):
A=[0]
H=1
当最大值(A)

您可以通过在循环中打印各种值来轻松解决此问题,例如
print H

我发现了另一个错误,改进后的代码是:

   from math import sqrt
    def F(n):
        return int(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)))

    def Frange2(x):
        A = [0]
        H = 1
        while max(A) < x:
            if F(H) < x:
                A.append(F(H))
            else:
                break
            H = H+1
        return A
从数学导入sqrt
def F(n):
返回int(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)))
def法兰2(x):
A=[0]
H=1
当最大值(A)
计算一系列斐波那契数的最快、最流行、最简单的解决方案是

def fib3(n): #FASTEST YET
    fibs= [0,1] #list from bottom up
    for i in range(2, n+1):
        fibs.append(fibs[-1]+fibs[-2])
    return fibs
此函数将计算出的斐波那契数存储在列表中,然后将其用作“缓存”数进行进一步计算


希望有帮助

请描述失败的方式,即任何错误或不正确的结果。@PeterHerdenborg我已经做了,有什么建议吗?非常感谢,我是编程新手,为什么我没有看到?每个答案旁边都有一个“接受”按钮。当您的问题得到回答时,您单击以显示这是有帮助的。