فصل ششم آموزش پایتون مقدماتی - تصمیم‌‌گیری و عبارات شرطی

سلام دوستانبا ادامه ی کتاب پایتون مقدماتی که به همراه دوست عزیزم جناب مهندس مهدی عباسپور شاهمرس نوشته و چاپ کردیم در خدمتتون هستیم. https://virgool.io/@mahdi.abbaspour.sh زمانی که می‌‌خواهیم بر اساس شرایط خاصی تصمیم‌‌گرفته، قطعه کد ویا برنامه‌‌ای را اجرا نماییم، از عبارات‌‌شرطی استفاده می‌‌کنیم.ساختار این دستورات، به گونه‌‌ای است که ابتدا شرط (ویا شروط) موجود، ارزیابی می‌‌شود. سپس بر حسب درستی ویا نادرستی نتیجه‌‌ی شرط، باید تعیین‌‌شود که چه کارهایی باید انجام شوند. به عبارت دیگر، نتیجه‌‌ی اجرای آن‌‌ها، به صورت Boolean خواهدبود. بر اساس True ویا False بودن این نتیجه، تصمیم‌‌گیری می‌‌شود که کدام قطعه کدها، بایستی اجرا شوند. شکل (6-1) فرم کلی ساختار تصمیم‌‌گیری‌‌های شرطی رایج که در بیشتر زبان‌‌های برنامه‌‌نویسی یافت می‌‌شود را نشان می‌‌دهد.شکل (6-1)پایتون هر مقدار غیرصفر[1] و غیرتهی[2] را به عنوان True درنظر می‌‌گیرد. بنابراین مقادیر صفر و تهی نیز به عنوان مقدار False درنظر گرفته می‌‌شوند. این زبان از انواع مختلف دستورات شرطی پشتیبانی می‌‌کند. در ادامه به بررسی جزئیات آن‌‌ها می‌‌پردازیم.[1]Non-Zero [2]Non-Null6-1- دستور Ifاین دستور در پایتون، مشابه زبان‌‌های دیگر اجرا می‌‌شود. عبارت if بیان‌‌گر شرطی است که با درست‌‌بودن آن، نسبت به اجرای یک قطعه کد تصمیم گرفته می‌‌شود. شمای کلی این دستور را در شکل (6-2) می‌‌بینید.شکل (6-2)همان گونه که در شکل (6-3) مشاهده می‌‌کنید، در صورت درستی شرط، دستورات بلوک مربوطه اجرا خواهدشد. اگر این شرط نادرست باشد، آن بلوک نادیده گرفته‌‌شده و دستورات بعدی (در صورت وجود) اجرا خواهند‌‌شد.شکل (6-3)در بلوک شرطی اول، چون متغیر var1 ، حاوی مقدار غیرصفر است، شرط درست‌‌شده و دستورات داخل آن اجرا خواهندشد. همچنین در بلوک شرطی دوم، به دلیل صفر بودن متغیر var2 ، دستورات آن بلوک نادیده گرفته‌‌شده و صرفا دستور چاپ نهایی اجرا می‌‌شود. نتیجه‌‌ی اجرای این قطعه کد را در شکل (6-4) می‌‌بینید.شکل (6-4)6-2- دستور If … Elseهمانند زبان‌‌های دیگر برنامه‌‌نویسی، در پایتون نیز دستور else می‌‌تواند با عبارت if ترکیب‌‌شود. این دستور، حاوی بلوک کدی است که اگر جواب شرط برابر False باشد، اجرا می‌‌شود. لازم به ذکر است که در دستورات شرطی، else یک عبارت اختیاری محسوب می‌‌شود. در شکل (6-5) گرامر آن را خواهید دید.شکل (6-5)برای درک بهتر این مطلب، مثالی را در شکل (6-6) نشان می‌‌دهیم.شکل (6-6)بلوک شرطی اول، همانند مثال قبلی عمل می‌‌کند. بلوک دوم، به دلیل نادرست بودن شرط، کدهای مربوط به بخش else چاپ می‌‌شوند. در این قطعه کد، هیچ شرطی برای اجرای دستور چاپ نهایی وجود ندارد. نتیجه اجرای آن را درشکل (6-4) می‌‌بینید.شکل (6-7)6-3- دستور Elifاین دستور به شما اجازه می‌‌دهد تا شروط متعدد با بلوک‌‌های دستور مختلف را باهم بررسی و اجرا‌‌ کنید. به عبارت دیگر، شما چندین شرط مجزا را تعیین‌‌کنید تا به محض درست‌‌بودن یکی از آن‌‌ها، بلوک کد مربوط به آن اجرا شود. همانند عبارت else استفاده از این دستور نیز اختیاری است. گرامر این دستور را در شکل (6-8) مشاهده می‌‌نمایید.شکل (6-8)همان طوری که در مثال شکل (6-9) می‌‌بینید، به دلیل درست‌‌بودن نتیجه‌‌ی شرط سوم، بلوک دستوری این شرط اجرا شده است.شکل (6-9)نتیجه‌‌ی اجرای این قطعه کد را در شکل (6-10) خواهیددید.شکل (6-10)6-4- دستورات شرطی تو در تو[1]ممکن‌‌است موقعیتی پیش‌‌آید که بخواهید شروط دیگری را پس از درست ویا نادرست بودن شرط خاصی، بررسی‌‌کنید. در چنین وضعیتی، می‌‌توانید از شروط تو‌‌ در تو استفاده‌‌نمایید.لازم به ذکر است که در این نوع شرط نیز می‌‌توانید از عبارات if...elif...else به صورت تو در تو استفاده‌‌نمایید. همان گونه که در شکل (6-11) مشاهده می‌‌نمایید، در صورت درست‌‌بودن شرط اول، شروط بعدی نیز بررسی خواهندشد.شکل (6-11)برای درک بهتر، مثالی از این دستورات را در شکل (6-12) آورده‌‌ایم.شکل (6-12)در این مثال به دلیل این که مقدار var برابر 100 است، دستورات شرط اصلی، درست خواهدبود. بنابراین شروط بعدی بررسی‌‌شده و دستور موجود در شرط درست اجرا می‌‌شود. نتیجه‌‌ی اجرای این مثال را در شکل (6-13) می‌‌بینید.شکل (6-13)[1]Nested If6-5- شروط تک‌‌خطی[1]اگر شرط ما فقط حاوی یک خط دستور باشد، می‌‌توانیم مانند شکل (6-14)، سرآیند و دستور شرط را با هم و در یک سطر داشته‌‌باشیم.شکل (6-14)[1]Single Statement Suitesدر پست بعدی به حلقه‌‌های تکرار خواهیم پرداخت. با ما همراه باشین