مشکل تفاوت مقدار دهی به متغیر ها در پایتون

سلام دوستان . خسته نباشید 😁✋!

یه سوال ابتدایی ، از دوستان عذر میخوام سوالم یکم ابتداییه!( سرچ هم کردم اما نتیجه ای حاصل نشد.)

ایا این کد (کد شماره 1) :

a, b = b, a+b

با این کد (کد شماره 2) :

a = b
b = a + b

یکسانه؟

قطعه کد بالایی(کد شماره 1) مربوط به تمرین دنباله ی فیبوناچیه . وقتی قطعه کد (کد شماره 2) رو جایگزینش میکنم خروجی اشتباه میده. اینم قطعه کد اورجینال دنباله فیبوناچی :

def fib(n):
 a, b = 0, 1
 while b < n :
 print(b, " ", end= " ")
 a, b = b, a + b
 #end of function
########################
# call function 

m = 50
fib(m)
پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

سلام دوست عزیز

وقت بخیر

دو قطعه کدی که درج کردید با هم برابر نیستند. در واقع، در کد اول هم‌زمان مقدار متغیر b به a و همچنین مقدار a + b به متغیر b اختصاص داده می‌شه. برای مثال، کد زیر رو ببینید:

>>> a = 1
>>> b = 2
>>> a, b = b, a+b
>>> a
2
>>> b
3

اما در روش دوم ابتدا مقدار متغیر b به متغیر a اختصاص داده می‌شه و سپس مقدار جدید متغیر a با مقدار متغیر b جمع شده و حاصل به متغیر b اختصاص پیدا می‌کنه. مثال زیر رو ببینید:

>>> a = 1
>>> b = 2
>>> a = b
>>> b = a + b
>>> a
2
>>> b
4
sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

تشکر :)

online-support-icon