【发布时间】:2020-10-24 17:56:24
【问题描述】:
又是 Python 新手。
使用
for循环编写斐波那契数列。
我了解for 循环的工作原理,您基本上是在告诉一个函数在给定的数字范围内重复运行。
这听起来可能很愚蠢,但我无法理解它的数学步骤。我知道斐波那契是将前两个数字加在一起给出当前数字,我已经看到了一堆代码示例,但它只是不适合我。这是我的代码(我从别人那里偷了数学部分):
n = int(input("Please provide a sequence term: "))
def fib2(num):
a, b = 1, 1
for i in range(num - 1):
a, b = b, a + b
return ("The nth term in the Fibonacci sequence is:", a)
print(fib2(n))
另外,谁能告诉我如何让nth 成为n 的输入值?
【问题讨论】:
-
你有没有一步步尝试你的代码,看看会发生什么?
-
好吧
a, b = b, a + b只是同时更新a 和b。a的新值为b,b的新值为a+b。像这样的东西是必要的,因为你需要b来计算新的a和a来计算新的b。你冷使用以下三行代替:(1)b_copy = b,(2)b=a+b,(3)a=b_copy。 -
哪个部分没有点击?您的代码反复将当前数字和之前的数字相加,为下一次迭代生成一对新数字。
-
在您的开发环境中逐步检查代码,逐步检查变量。并按照一张纸上的逻辑。这应该澄清它。
-
a, b = b, a + b主要是两个赋值语句的简写:a = b和b = a + b— 这是 Fibonacci sequence 的定义,其中每个后续数字是前两个的总和。