Flo*_*ris 0 python loops function
在我的 Python 课程中,我有一个关于斐波那契数的练习。下面是第 4.1.5.7 章的全文。
我的问题是关于函数本身。特别是我对循环内部发生的事情感到困惑:
for i in range(3, n + 1):
sum = elem1 + elem2
elem1, elem2 = elem2, sum
return sum
Run Code Online (Sandbox Code Playgroud)
在第三行中,您会看到 elem1 逗号 elem2 等于 elem2 逗号总和。这是什么意思?
有人可以逐步解释我如何解释这个循环的内容吗?
一些简单的函数: 斐波那契数 你熟悉斐波那契数吗?
它们是使用非常简单的规则构建的整数序列:
序列的第一个元素等于一 (Fib1 = 1) 第二个元素也等于一 (Fib2 = 1) 每个后续数字都是前面两个数字的总和 (Fibi = Fibi-1 + Fibi-2) 这里是一些最初的斐波那契数列:
fib1 = 1
fib2 = 1
fib3 = 1 + 1 = 2
fib4 = 1 + 2 = 3
fib5 = 2 + 3 = 5
fib6 = 3 + 5 = 8
fib7 = 5 + 8 = 13
Run Code Online (Sandbox Code Playgroud)
您如何看待将其实现为功能?
让我们创建我们的 fib 函数并测试它。这里是:
def fib(n):
if n < 1:
return None
if n < 3:
return 1
elem1 = elem2 = 1
sum = 0
for i in range(3, n + 1):
sum = elem1 + elem2
elem1, elem2 = elem2, sum
return sum
for n in range(1, 10): # testing
print(n, "->", fib(n))
Run Code Online (Sandbox Code Playgroud)
仔细分析 for 循环体,找出我们如何通过后续的斐波那契数移动 elem1 和 elem2 变量。
代码的测试部分产生以下输出:
1 -> 1
2 -> 1
3 -> 2
4 -> 3
5 -> 5
6 -> 8
7 -> 13
8 -> 21
9 -> 34
Run Code Online (Sandbox Code Playgroud)
Cisco Networking Academy 提供的来源 - 课程名称:PCAP - Python 编程基础 - 模块 4,第 4.1.5.7 章,标题为“创建函数 | Fibonacci 数”。