رفتن به محتوای اصلی
نسخه‌ی آزمایشی · Beta

برنامه‌نویسیایستگاه ۱۲ از ۳۰

پایتون: شرط و حلقه · برنامه‌نویسی، ایستگاه ۱۲

پرسشی که ایستگاه با آن شروع می‌شود

کامپیوتر در یک ثانیه چند بار می‌تواند بشمارد: هزار؟ میلیون؟ میلیارد؟ در درسِ ۲ خودت اندازه می‌گیری.

معمولاً پایهٔ ششمحدود ۹۲ دقیقه در ۴ جلسهٔ کوتاه

سرعت را تسلط تعیین می‌کند، نه سن.

فرزندتان در این ایستگاه چه یاد می‌گیرد

  • if/elif/else
  • حلقه‌ی for و range
  • حلقه‌ی while
  • شمارنده و جمع‌کننده

درس‌های این ایستگاه

  1. اگر … وگرنه: `if`، `elif`، `else` (حدود ۲۴ دقیقه)
  2. حلقه‌ی `for` و `range` (حدود ۲۲ دقیقه)
  3. شمارنده و جمع‌کننده (حدود ۲۳ دقیقه)
  4. حلقه‌ی `while`: تا وقتی که … (حدود ۲۳ دقیقه)

ایده‌های کلیدی

  • اولین شرطِ درست برنده است

    == می‌پرسد «برابر است؟» و = می‌گذارد. در if/elif/else فقط اولین بخشِ درست اجرا می‌شود؛ خط‌های تورفته مالِ همان بخش‌اند.
  • `range` ایست را نمی‌دهد

    range(4) یعنی ۰، ۱، ۲، ۳ و range(1, 6) یعنی ۱ تا ۵. عددِ سوم گام است: range(2, 20, 5) ← ۲، ۷، ۱۲، ۱۷.
  • `while`: تا وقتی که

    شرط اولِ هر دور پرسیده می‌شود. جمعِ رقم‌ها: s = s + n % 10 و n = n // 10 تا وقتی n > 0. از ۱ تا ۱۰۰۰، ۶۳ عدد جمعِ رقم‌هایشان ۱۰ است.

از درس‌های همین ایستگاه

دو مثال حل‌شده

همان‌طور که در درس دیده می‌شود، این‌جا با همهٔ قدم‌ها.
مثال ۱از درس «اگر … وگرنه: `if`، `elif`، `else`»

مسئله

بازیِ «فیزباز»: مضربِ ۱۵ ← «فیزباز»، مضربِ ۳ ← «فیز»، مضربِ ۵ ← «باز»، بقیه خودِ عدد. برای ورودیِ ۱۵ چه چاپ می‌شود؟ اول خودت حدس بزن.

راه‌حل، قدم‌به‌قدم

در درس، قدم‌ها یکی‌یکی باز می‌شوند و فرزندتان پیش از هر قدم خودش حدس می‌زند.

  1. قدم ۱:
    ورودیِ ۱۵: شرطِ اول 15 % 15 == 0 درست است، پس فیزباز چاپ می‌شود. ۱۵ بر ۳ هم بخش‌پذیر است، ولی elifها دیگر پرسیده نمی‌شوند: اولین شرطِ درست برنده است.
  2. قدم ۲:
    چرا شرطِ ۱۵ اول آمده؟ اگر n % 3 == 0 اول بود، ۱۵ همان‌جا «فیز» می‌گرفت و هیچ‌وقت به «فیزباز» نمی‌رسید. ترتیبِ شرط‌ها مهم است.
  3. قدم ۳:
    نوبتِ تو: برای ورودی‌های ۹، ۱۰، ۳۰ و ۷ چه چاپ می‌شود؟ اول خودت جواب بده، بعد قدمِ بعد را باز کن.
  4. قدم ۴:
    ۹ ← فیز، ۱۰ ← باز، ۳۰ ← فیزباز، ۷ ← 7؛ برای ۷ هیچ شرطی درست نیست، پس else.
مثال ۲از درس «اگر … وگرنه: `if`، `elif`، `else`»

مسئله

این برنامه دمای آب را (به درجهٔ سانتی‌گراد) می‌گیرد و یک کلمه چاپ می‌کند. برای کوتاهی، هر بخش را در همان خطِ شرطش نوشته‌ایم؛ وقتی هر بخش فقط یک دستور دارد، پایتون این را هم قبول می‌کند، ولی در برنامه‌های خودت تورفتگی بنویس. برنامه:t = int(input()) if t <= 0: print("یخ") elif t < 100: print("آب") else: print("بخار")برای ورودی‌های ۰، ۳۷ و ۱۰۰ چه چاپ می‌شود؟ اول خودت حدس بزن.

راه‌حل، قدم‌به‌قدم

در درس، قدم‌ها یکی‌یکی باز می‌شوند و فرزندتان پیش از هر قدم خودش حدس می‌زند.

  1. قدم ۱:
    ورودیِ ۰: 0 <= 0 درست است، چون <= یعنی «کوچک‌تر یا مساوی». پس یخ. بقیهٔ شرط‌ها پرسیده نمی‌شوند.
  2. قدم ۲:
    ورودیِ ۳۷: 37 <= 0 نادرست است؛ نوبتِ elif است: 37 < 100 درست است، پس آب.
  3. قدم ۳:
    ورودیِ ۱۰۰: 100 <= 0 نادرست، 100 < 100 هم نادرست؛ چون < خودِ ۱۰۰ را قبول نمی‌کند. پس else اجرا می‌شود: بخار.
  4. قدم ۴:
    دو عددِ ۰ و ۱۰۰ «مرز»اند. جای هر مرز را علامت تعیین می‌کند: <= مرز را داخلِ همان بخش می‌برد و < بیرونش می‌گذارد. برای امتحانِ چنین برنامه‌ای، خودِ عددهای مرزی را هم وارد کن.
  5. قدم ۵:
    نوبتِ تو، اول خودت: اگر خطِ سوم elif t <= 100: بود، ورودیِ ۱۰۰ چه چاپ می‌کرد؟ جواب بده، بعد قدمِ بعد را باز کن.
  6. قدم ۶:
    100 <= 100 درست است، پس آب. با یک علامت، مرز از بخشِ «بخار» به بخشِ «آب» رفت.

پیش‌نیازها

ایستگاه‌هایی که به این تکیه می‌کنند

روش یادگیری فکرستان و همهٔ ایستگاه‌های این مسیر: برنامه‌نویسی برای کودکان

شروع با فکرستان

حساب را پدر یا مادر می‌سازد و رضایتش را همان‌جا ثبت می‌کند. فرزندتان با نام مستعار وارد می‌شود و با چند پرسش کوتاه، نقطهٔ شروعِ هر مسیر پیدا می‌شود.