Python 使用嵌套WHILE循环生成意外结果的函数
我在大学里学习python,在一些概念上遇到了问题,主要是循环。我需要帮助了解我的代码产生错误结果的原因:Python 使用嵌套WHILE循环生成意外结果的函数,python,list,loops,while-loop,fibonacci,Python,List,Loops,While Loop,Fibonacci,我在大学里学习python,在一些概念上遇到了问题,主要是循环。我需要帮助了解我的代码产生错误结果的原因: def fibonacci(maxint): a, b = 0, 1 LIST = [a, b] while b < maxint: a, b = b, a + b LIST.append(b) return LIST 输出应显示为: [0, 1, 1, 2, 3, 5, 8] 但它实际上是在印刷: [0, 1, 1
def fibonacci(maxint):
a, b = 0, 1
LIST = [a, b]
while b < maxint:
a, b = b, a + b
LIST.append(b)
return LIST
输出应显示为:
[0, 1, 1, 2, 3, 5, 8]
但它实际上是在印刷:
[0, 1, 1, 2, 3, 5, 8, 13]
有人能分析我的代码并告诉我以下内容吗:
它在哪里效率低下?
为什么它会越界,循环超过我函数中的10个参数?
首先,您的代码不是低效的,因为它是一种生成斐波那契数的迭代方法
其次,下面的代码将纠正代码中关于超出maxint的值的问题:
因为您在b
[0, 1, 1, 2, 3, 5, 8, 13]
def fibonacci(maxint):
a, b = 0, 1
LIST = [a]
while b < maxint:
LIST.append(b) # appending the b's value to the list before it is updated.
a, b = b, a + b
return LIST
>>>fibonacci(10)
>>>[0, 1, 1, 2, 3, 5, 8]