پث‌وایز

شروع برنامه‌نویسی با پایتون (Intro to Python) · درس ۲ از ۱۲ · ۱۲ دقیقه

متغیرها: اسم برای مقدارها (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 چی‌کار می‌کنه؟

  1. بررسی می‌کنه qty مساوی 3 هست یا نه
  2. 3 رو با اسم qty نگه می‌داره
  3. عدد 3 رو روی صفحه چاپ می‌کنه
  4. متن 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. پایتون توی خط دوم اول چی‌کار می‌کنه؟

  1. با مقدار قبلی، یعنی 10، score + 5 رو حساب می‌کنه
  2. score رو صفر می‌کنه، بعد 5 اضافه می‌کنه
  3. متوقف می‌شه، چون score نمی‌تونه مساوی score + 5 باشه
  4. متن score + 5 رو نگه می‌داره
جواب رو ببین

با مقدار قبلی، یعنی 10، score + 5 رو حساب می‌کنه

درسته. همیشه سمت راست اول حساب می‌شه: 10 + 5 می‌شه 15، و تازه بعدش 15 دوباره زیر اسم score نگه داشته می‌شه.

خودت رو امتحان کن

price = 5
qty = 3
total = price * qty
print(total)
price = 6
print(total)
  1. 15
    15
  2. 15
    18
  3. 18
    18
  4. 15
    6
جواب رو ببین
15
15

قدم‌به‌قدم ببین

  1. price = 5 یه جعبه به اسم price می‌سازه

    پنل کد سمت چپ خطی رو که الان اجرا می‌شه پررنگ کرده، price = 5. سمت راست، پایتون یه جعبه با برچسب price ساخته و 5 رو توش گذاشته. از این به بعد price یعنی 5.

  2. qty = 3 جعبه‌ی خودش رو می‌گیره

    حالا qty = 3 پررنگ شده و خط اول کم‌رنگ شده، چون کارش تموم شده. یه جعبه‌ی دوم به اسم qty با مقدار 3 کنار price ظاهر می‌شه: هر اسمی جعبه‌ی خودش رو داره.

  3. total از روی 5 و 3 حساب می‌شه

    برای total = price * qty، از جعبه‌های price و qty فلش می‌ره سمت 5 * 3: پایتون از مقدارهایی استفاده می‌کنه که همین الان توی جعبه‌هان. جواب، یعنی 15، می‌ره توی یه جعبه‌ی جدید به اسم total.

  4. 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.

خودت رو امتحان کن

  1. price = 5
  2. qty = 3
  3. total = price * qty
  4. print(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 می‌ده.

فقط نخونش، نگهش دار

پث‌وایز هر ایده رو درست قبل از اینکه فراموشش کنی با یه سؤال کوتاه برمی‌گردونه. رایگان روی اندروید و وب، به فارسی و انگلیسی.

Cafe Bazaar Myket باز کردن نسخه‌ی وب

همه‌ی درس‌های این دوره

  1. اولین برنامه‌ت (Your First Program)
  2. متغیرها: اسم برای مقدارها (Variables)
  3. رشته‌ها: کار با متن (Strings)
  4. ورودی و نوع داده‌ها (Input and Types)
  5. تصمیم‌گیری با if (Conditionals)
  6. لیست‌ها: کلی مقدار یه‌جا (Lists)
  7. حلقه‌ها: دوباره و دوباره (Loops)
  8. تابع‌ها: به یه کار اسم بده، دوباره استفاده‌ش کن (Functions)
  9. دیکشنری‌ها: پیدا کردن با اسم (Dictionaries)
  10. خوندن پیام‌های خطا (Reading Errors)
  11. ذخیره و خوندن فایل (Files)
  12. پروژه‌ی آخر: حساب خرج‌ها (Final Project)