恳请大佬留步片刻 为小弟解疑
def Fib(n):a,b = 0,1
print(a)
while n-1:
a,b,n = b,a+b,n-1
print(Fib(10))
题目:斐波那契数,其中a,b,n = b,a+b,n-1这句什么意思,谢谢 赋值啊,
a = 5
a,b = 5,6
a,b,c = 5,6,7
不理解吗? 相当于同时运行
a = b
b = a+b
n = n-1 Stubborn 发表于 2020-5-21 22:15
赋值啊,
a = 5
a,b = 5,6
请问 如果赋值的话是不是等于
a=b
b=a+b
n = n-1
如果是 那输出结果就是0
1
2
4
8
16
32
64
128
256
而不是斐波那契数 liuzhengyuan 发表于 2020-5-21 22:17
相当于同时运行
请问 如果赋值的话是不是等于
a=b
b=a+b
n = n-1
如果是 那输出结果就是0
1
2
4
8
16
32
64
128
256
而不是斐波那契数 Justheartyoung 发表于 2020-5-21 22:19
请问 如果赋值的话是不是等于
a=b
b=a+b
同时执行
不是分步执行
a 先 等于 b 了,那么答案就会出错
要同时执行才可以 liuzhengyuan 发表于 2020-5-21 22:19
同时执行
不是分步执行
谢谢你 明白了 Justheartyoung 发表于 2020-5-21 22:18
请问 如果赋值的话是不是等于
a=b
b=a+b
这里就有一个交换的概念了。一般其他程序,交换两个变量,a,b的值,都会用一个新的临时变量c去储存。
c = a
a = b
b = c
你问的这个问题也是这里产生的。不过python的语法支持同时赋值
a,b = b , a
这样就不需要临时的c变量
页:
[1]