متغیرها: اسم برای مقدارها (Variables)
متغیر یه اسمه که به یه مقدار اشاره میکنه تا بعداً ازش استفاده کنی. یاد میگیری = چطور یه مقدار رو نگه میداره، چطور عوضش کنی، و چرا عوض کردن یه متغیر بیسروصدا یکی دیگه رو عوض نمیکنه.
مقداردهی
price = 5 یعنی: 5 رو با اسم price نگه دار
علامت = توی پایتون مقداردهی (assignment)ـه، نه مساوی ریاضی. پایتون اول هر چی سمت راسته رو حساب میکنه، بعد جوابش رو زیر اسمی که سمت چپه نگه میداره. از اون به بعد، هر جای برنامه بنویسی price یعنی 5، تا وقتی که یه چیز دیگه توش بذاری.
بعد از price = 5، خط print(price * 2) چاپ میکنه 10.
price = 5
qty = 3
total = price * qty
print(total)15سه تا اسم، سه تا مقدار. خط سوم مقدارهایی رو که توی price و qty هست میخونه، ضربشون میکنه و 15 رو با اسم total نگه میداره. فقط خط آخر چیزی چاپ میکنه؛ خود مقداردهی هیچی روی صفحه نشون نمیده.
خودت رو امتحان کن
خط qty = 3 چیکار میکنه؟
- بررسی میکنه qty مساوی 3 هست یا نه
- 3 رو با اسم qty نگه میداره
- عدد 3 رو روی صفحه چاپ میکنه
- متن qty = 3 رو چاپ میکنه
جواب رو ببین
3 رو با اسم qty نگه میداره
درسته. یه = تنها مقدار سمت راست رو زیر اسم سمت چپ نگه میداره. نه چیزی چاپ میشه، نه چیزی بررسی میشه.
مقداردهی دوباره
یه مقدار جدید، مقدار قبلی رو جایگزین میکنه
هر متغیر هر لحظه فقط یه مقدار داره. اگه دوباره به همون اسم مقدار بدی، مقدار قبلی از بین میره. برای همین score = score + 5 یه کد کاملاً عادیه، با اینکه از نظر ریاضی غلط به نظر میاد: پایتون مقدار قبلی score رو میخونه، 5 تا بهش اضافه میکنه و جواب رو دوباره زیر اسم score نگه میداره. شکل کوتاهش score += 5 رو هم میبینی که همین کار رو میکنه.
score = 10، بعد score = score + 5: حالا score مقدار 15 رو داره و 10 دیگه نیست.
خودت رو امتحان کن
توی برنامهی مینا اول score = 10 هست و بعد score = score + 5. پایتون توی خط دوم اول چیکار میکنه؟
- با مقدار قبلی، یعنی 10، score + 5 رو حساب میکنه
- score رو صفر میکنه، بعد 5 اضافه میکنه
- متوقف میشه، چون score نمیتونه مساوی score + 5 باشه
- متن score + 5 رو نگه میداره
جواب رو ببین
با مقدار قبلی، یعنی 10، score + 5 رو حساب میکنه
درسته. همیشه سمت راست اول حساب میشه: 10 + 5 میشه 15، و تازه بعدش 15 دوباره زیر اسم score نگه داشته میشه.
خودت رو امتحان کن
price = 5
qty = 3
total = price * qty
print(total)
price = 6
print(total)15 1515 1818 1815 6
جواب رو ببین
15
15قدمبهقدم ببین

price = 5یه جعبه به اسم price میسازهپنل کد سمت چپ خطی رو که الان اجرا میشه پررنگ کرده،
price = 5. سمت راست، پایتون یه جعبه با برچسب price ساخته و 5 رو توش گذاشته. از این به بعد price یعنی 5.
qty = 3جعبهی خودش رو میگیرهحالا
qty = 3پررنگ شده و خط اول کمرنگ شده، چون کارش تموم شده. یه جعبهی دوم به اسم qty با مقدار 3 کنار price ظاهر میشه: هر اسمی جعبهی خودش رو داره.
total از روی 5 و 3 حساب میشه برای
total = price * qty، از جعبههای price و qty فلش میره سمت5 * 3: پایتون از مقدارهایی استفاده میکنه که همین الان توی جعبههان. جواب، یعنی 15، میره توی یه جعبهی جدید به اسم total.
price = 6مقدار price رو عوض میکنه، ولی total رو نهخط آخر،
price = 6، روی 5 توی جعبهی price خط میکشه و 6 مینویسه. total هنوز 15 داره، و یادداشت کمرنگ کنارش،15 != 6 * 3، میگه 18 نیست. عوض کردن price خودبهخود total رو دوباره حساب نمیکنه؛ فقط اگه خط total دوباره اجرا بشه عوض میشه.
خودت رو امتحان کن
بعد از total = price * qty، عوض کردن price خودبهخود total رو بهروز میکنه.
جواب رو ببین
نادرست
غلطه. total یه بار حساب شده، از مقدارهایی که price و qty همون لحظه داشتن، و همون جواب رو نگه میداره. برای یه total جدید، بعد از عوض کردن price دوباره total = price * qty رو اجرا کن.
price = 5
qty = 3
total = price * qty
print(total)
price = 6
total = price * qty
print(total)15
18این بار بعد از عوض شدن price، خط total دوباره اجرا میشه، پس print دوم 18 نشون میده. امتحانش کن: خط ۶ رو پاک کن، اجرا کن و ببین print دوم دوباره 15 میشه.
قانون اسمگذاری
اسمهایی که پایتون قبول میکنه، و اسمهایی که آدم میتونه بخونه
اسم میتونه حرف، رقم و زیرخط _ داشته باشه، ولی نمیتونه با رقم شروع بشه و فاصله هم نمیتونه داشته باشه. کوچیک و بزرگی حرفها مهمه: Age و age دو تا متغیر جدان. کلمههایی که خود پایتون ازشون استفاده میکنه، مثل for و if، نمیتونن اسم باشن. سبک پایتون snake_caseـه: کلمههای با حروف کوچیک که با زیرخط به هم وصل شدن، مثل total_price. اسمی انتخاب کن که بگه مقدار چه معنیای داره؛ t کار میکنه، ولی total_price خودش توضیح میده.
second و total_price درستن. 2nd و my name و for همه با SyntaxError متوقف میشن.
خودت رو امتحان کن
این اسمها رو دستهبندی کن: پایتون کدومها رو قبول میکنه؟
- total_price
- age2
- _count
- 2nd_place
- my name
- for
جواب رو ببین
اسم درست: total_price, age2, _count
مجاز نیست: 2nd_place, my name, for
print(type(5))
print(type(5.0))
print(7 / 2)<class 'int'>
<class 'float'>
3.5عددهای صحیح int (عدد صحیح) هستن و عددهای ممیزدار float (عدد اعشاری). type() بهت میگه یه مقدار از کدوم نوعه. تقسیم float میده، برای همین 7 / 2 میشه 3.5 و 10 / 2 میشه 5.0. توی درس ۴ دو تا نوع دیگه رو هم میبینی، متن و True/False.
خودت رو امتحان کن
price = 5qty = 3total = price * qtyprint(totl)
جواب رو ببین
اشکال توی خط ۴.
پیداش کردی. totl غلط تایپی totalـه. هیچوقت مقداری با اسم totl نگه داشته نشده، پس پایتون با یه NameError متوقف میشه: name 'totl' is not defined. نسخههای جدید پایتون حتی اضافه میکنن: Did you mean: 'total'?
مرور درس
- متغیر یه اسم برای یه مقداره؛
price = 5عدد 5 رو با اسم price نگه میداره. =یعنی مقداردهی: اول سمت راست حساب میشه، بعد زیر اسم سمت چپ نگه داشته میشه.- مقداردهی دوباره، مقدار قبلی رو جایگزین میکنه، پس
score = score + 5به امتیاز فعلی 5 تا اضافه میکنه. - متغیرها همدیگه رو بهروز نمیکنن: بعد از
price = 6، total تا وقتی خطش دوباره اجرا نشه 15 میمونه. - اسمها از حرف، رقم و
_ساخته میشن، با رقم شروع نمیشن و کوچیک و بزرگی حرفها توشون مهمه؛ استفاده از اسمی که مقداری نداره NameError میده.