What is the difference between these two python code?.i thought both are same but the output i am getting is different
def fibonacci(num): a=1 b=1 series=[] series.append(a) series.append(b) for i in range(1,num-1): series.append(a b) #a,b=b,a b a=b b=a b return series print(fibonacci(10))
def fibonacci(num): a=1 b=1 series=[] series.append(a) series.append(b) for i in range(1,num-1): series.append(a b) a,b=b,a b #a=b #b=a b return series print(fibonacci(10))
CodePudding user response:
In the first method
a=b
b=a b
is an incorrect way of swapping, when you say a=b
you have lost the value of a, so b=a b
is the same as b=b b
, which is not what you want.
Another way to achieve an equivalent result to this approach, a,b = b,a b
, is by using a temporary variable to store a
, as follows:
tmp = a
a = b
b = tmp b
CodePudding user response:
The issue here is about storing the values you are calculating, on the first snippet you are saying a b only on the second snippet you are saying b =a b. The value of b is changing when you say b = a b.
Hope my explanation is understandable.You are re-assigning the value of b o the first snippet (b=a b)