我正在努力弄清楚python中这个函数实际上做了什么?
def mystery(n):
a, b = 0, 1
while a < n:
print(a)
a, b = b, a + b
虽然基本的我不完全明白它的成就是什么? 添加基本命令以使用字母N(例如 -
)运行它时def mystery(n):
a, b = 0, 1
while a < n:
print(a)
a, b = b, a + b
n = int(input("Input the letter N"))
mystery(n)
它提供了最奇怪的输出,例如 -
Input the letter N 20
0
1
1
2
3
5
8
13
请帮我理解这段代码,
谢谢, 艾萨克。
答案 0 :(得分:1)
总结:
该函数打印出Fibonacci序列中的第一个N
数字。
这是一个以1,1开头的序列,后面的每个术语都是前两个术语的总和。
a, b = b, a + b
这里有2个变量。 a
始终是当前字词,b
是下一个字词。每次迭代,在打印当前术语后,您将下一个术语分配给a
并在此之后计算术语。
a: current term
b: the next term
a+b: the term after that
您可以使用此方法on this SO post了解有关交换变量的详情。
来自@eyquem接受的回答:
Python从左到右评估表达式。请注意,在评估分配时,右侧会在左侧之前进行评估。