如何在Python中生成其值不应超过目标值的Fibonacci序列

2024-04-25 10:26:03 发布

您现在位置:Python中文网/ 问答频道 /正文

不熟悉Python,需要一些帮助。你知道吗

我试图生成一个斐波那契级数,并将每个元素放入一个列表中。我想设置一个条件,使Fibonacci列表不包含任何大于目标值的元素。我创建了一个函数myFib来生成这个列表,并传递一个参数20,希望我的Fibonacci列表只包含小于20的值。我的循环在附加了元素21之后停止了,我试图找出我在这里做错了什么。一旦我得到这个工作,我想做一个200万的目标值,所以试图找出机械之前,我设定了一个大的目标值。谢谢你的帮助。你知道吗

def myFib(max_count):
    a = 1
    b = 1
    fiblist = [1, 1]
    while fiblist[-1] <= max_count:
        temp = a
        a = b
        b = temp + a
        fiblist.append(b)
        print(fiblist)
    return fiblist

myFib(20) 

我得到的结果是

[1,1,2,3,5,8,13,21]


Tags: 函数元素列表参数defcount条件temp
1条回答
网友
1楼 · 发布于 2024-04-25 10:26:03

您可以在代码中添加一个中断while循环的条件,以使任何值都不超过max_count变量,例如:

def myFib(max_count):
    a = 1
    b = 1
    fiblist = [1, 1]
    while fiblist[-1] <= max_count:
        temp = a
        a = b
        b = temp + a
        if b > max_count:
            break
        fiblist.append(b)
        # print(fiblist)
    return fiblist

输出:

myFib(20)
>>> [1, 1, 2, 3, 5, 8, 13]

相关问题 更多 >