我的while循环是有缺陷的还是需要很长时间才能完成?

2024-03-28 18:54:05 发布

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

在用python3编写代码时,我开发了一个While循环,似乎要花很长时间才能完成加载。我不明白为什么它不工作,它是否会无限运行,所以如果有人能看到我的错误,请指出它。你知道吗

list = [1,2]
Conditional = list[-1] < 4,000,000
while Conditional:
    def fibonacci(first,second):
        first = first + second
        list.insert(-1,first)
        second = first + second
        list.insert(-1,second)
fibonacci(1,2)

Tags: 代码def错误python3listfibonaccifirstconditional
2条回答

@Reblochon Masque answer实际返回的最后一个数字将高于4000000。在追加之前,需要检查最后一个元素。你知道吗

如果我要写函数,我会这样做:

def fibonacci(data, n):
   fb = data[-1]+data[-2] #
   while fb < n:
       data.append(fb)
       fb = data[-1]+data[-2]
   return data

mylist = [1,2]
limit = 4000000
output = fibonacci(mylist,limit)

原始代码注释:

  • 你在循环中定义你的函数(我不确定它是否可以访问)。你知道吗
  • 我不会用'list'作为名字,因为list是一个内置函数
  • 我将使用append to insert作为最后一个元素。你知道吗

这个循环永远不会结束:

Conditional = list[-1] < 4,000,000始终为真,因此,while Conditional:等价于while True

如果您希望所有fib号码都在4000000以下,您可以这样做:

fibs = [1,2]
while fibs[-1] < 4000000:
    fibs.append(fibs[-2] + fibs[-1])

相关问题 更多 >