我的 while 循环有缺陷还是需要很长时间才能完成?
Is my while loop flawed or is it just going to take a long time to finish?
在 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)
这个循环永远不会结束:
Conditional = list[-1] < 4,000,000
始终为真,因此,while Conditional:
等同于 while True
如果你想要所有 fib 数字都在 4,000,000 以下,你可以这样做:
fibs = [1,2]
while fibs[-1] < 4000000:
fibs.append(fibs[-2] + fibs[-1])
@Reblochon Masque 的回答实际上 return 最后一个数字高于 4,000,000。您需要在追加之前检查最后一个元素。
如果我要编写函数,我会这样做:
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' 作为名称,因为列表是内置函数
- 我会使用追加作为最后一个元素插入。
在 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)
这个循环永远不会结束:
Conditional = list[-1] < 4,000,000
始终为真,因此,while Conditional:
等同于 while True
如果你想要所有 fib 数字都在 4,000,000 以下,你可以这样做:
fibs = [1,2]
while fibs[-1] < 4000000:
fibs.append(fibs[-2] + fibs[-1])
@Reblochon Masque 的回答实际上 return 最后一个数字高于 4,000,000。您需要在追加之前检查最后一个元素。
如果我要编写函数,我会这样做:
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' 作为名称,因为列表是内置函数
- 我会使用追加作为最后一个元素插入。