دستورات شرطی در پایتون
در این جلسه از آموزش رایگان پایتون، میخواهیم دستورات شرطی در پایتون را آموزش دهیم. یکی از دستورات شرطی در پایتون، دستور if در پایتون است. دستور if در پایتون یک ویژگی جالب به کدها اضافه میکند. این ویژگی، تصمیمگیری است. در پایان این جلسه شما کار با دستور if در پایتون، دستور if else در پایتون و دستور if elif else در پایتون را خواهید آموخت. با هوسم همراه باشید…
مقدمهای بر دستورات شرطی در پایتون
دستورات شرطی به کدهایمان قابلیت تصمیمگیری اضافه میکنند! دستورات شرطی در پایتون، این امکان را به وجود میآورند که در صورت برقرار بودن یک شرط، یک سری کد اجرا شوند. پس این تصمیمگیری که دستورات شرطی ایجاد میکنند، آزادی زیادی ندارند! مثلا نمیتوان با دستورات شرطی کدی نوشت که بگوید چه لباسی به شما بیشتر میآید! اما میتوانید کدی بنویسید که اگر نمره شما بالاتر از 19 شد بگوید “congratulations!”. یا کدی بنویسید که اگر عددی زوج باشد آن را با یک جمع کند و در غیر اینصورت آن را با 2 جمع کند!
یکی از دستورات شرطی، دستور if در پایتون است. ما در این پست دستور if را معرفی خواهیم کرد. دستور if else در پایتون و دستور if elif else در پایتون، از دیگر دستورات شرطی هستند که درواقع تعمیم یافته دستور if هستند. شما با این دو دستور نیز آشنا خواهید شد. خب، برویم سر اصل مطلب…
دستور if در پایتون
دستور if در پایتون، یکی از دستورات شرطی در پایتون است. این دستور در اکثر زبانهای برنامهنویسی وجود دارد. دستور if در پایتون، تمپلیت مشخصی دارد. در این تمپلیت چندین کلمه کلیدی وجود دارد! این کلمات کلیدی ثابت هستند و همیشه وجود دارند. اصلا اگر وجود نداشته باشند ما قادر به اجرا کردن کدمان نیستیم! چون پایتون به جان شما غُر خواهد زد که این چه وضع کد نوشتن است! بنابراین این کلمات کلیدی لاجرم باید وجود داشته باشند.
تمپلیت دستور if، علاوه بر کلمات کلیدی، دو بخش دیگر دارد که آن را خودمان باید پُر کنیم. اما چگونه؟ این سوال را در این بخش به طور کامل با مثال و تمرین خواهید آموخت. اما فعلا به صورت خلاصه میگوییم این دو بخش چه هستند. در این دو بخش ما باید شرطها و کدهای خودمان را بنویسیم. در بخشهای بعدی به سوالاتی که مطرح کردیم، به صورت کامل پاسخ داده خواهد شد. برویم سراغ بخش بعدی…
بلوکدیاگرام دستور if در پایتون
در بخش قبل گفتیم که یک تمپلیت مشخص برای دستور if وجود دارد. اما قبل از اینکه این تمپلیت را بررسی کنیم، بلوکدیاگرامی برای این دستور ارائه میکنیم. این بلوکدیاگرام نشان میدهد که فارغ از بحث کدنویسی و به صورت کلی، دستور if چطور کار میکند. تصویر زیر را مشاهده کنید:
این تصویر میگوید که اگر شرط مورد نظر ما برقرار باشد، دستوراتی که در بدنه if نوشته میشوند، اجرا خواهند شد. در غیر اینصورت پایتون از روی if میپرد و ادامه دستورات را اجرا میکند!
تمپلیت دستور if
حالا که دید کلی از دستور if به دست آوردیم، میرویم سراغ تمپلیت if. تمپلیت دستور if در پایتون به شکل زیر است:
کلمات کلیدی در دستور if، عبارت if و علامت کولن (:) هستند. این دو حتما باید باشند، در غیر این صورت با خطا مواجه خواهیم شد. بین if و علامت کولن، شرط را مینویسیم. اما شرط چیست؟ شرط باید عبارتی باشد که نتیجه آن True یا False باشد. در جلسه قبل با عملگرهای شرطی در پایتون آشنا شدیم. دیدیم که نتیجه استفاده از عملگرهای مقایسه True یا False بود. پس میتوان از عبارات مقایسهای در بخش conditions استفاده کرد.
بخش بعدی از تمپلیت if، بدنه دستور if است. اما اگر دقت کنید میبینید که کدهایی که در این قسمت نوشته میشوند، از ابتدای خط شروع نمیشوند. بلکه به اندازه چهار space از سر خط فاصله دارند. space-ها با مستطیلهای خاکستری نشان داده شدهاند. به این فاصله indentation گفته میشود. indentation مشخص میکند که کدام دستورها داخل دستور if هستند و کدام بیرون! دقت کنید که این چهار space هم حتما باید وجود داشته باشد.
شاید برایتان سوال پیش بیاید که در بدنه if چه کدی باید نوشته شود؟ شما آزاد هستید در این بخش هر کدی که دلتان بخواهد، بنویسید! به جز رعایت indentation، هیچ اصول و ترتیبی در این بخش وجود ندارد. خب تئوری بس است! برویم در بخش بعدی از پست «دستورات شرطی در پایتون»، کمی کد بنویسیم…
مثال 1: آیا متغیر num زوج است؟
در این مثال ساده، میخواهیم ببنیم که آیا متغیر num، زوج است یا خیر. و اگر زوج باشد، عبارت “num is even” در خروجی نوشته شود. به این منظور ابتدا متغیر num را با مقدار دلخواه تعریف میکنیم.
num = 6
خب حالا با استفاده از دستور if، میخواهیم ببینیم آیا این عدد زوج است یا خیر. و اگر زوج باشد در خروجی عبارت “num is even” نوشته شود. چطور میتوان فهمید یک عدد زوج است یا خیر؟ میدانیم یک عدد زوج بر 2 بخشپذیر است. یعنی باقیمانده آن صفر است. بنابراین میتوانیم از علامت % استفاده کنیم. اگر باقیمانده تقسیم num بر 2 برابر با صفر باشد، عدد زوج است. بنابراین به شکل زیر از دستور if استفاده میکنیم:
if num % 2 == 0: print('num is even')
با اجرای کد بالا، خروجی به شکل زیر خواهد بود:
num is even
مشاهده میکنید که عبارت “num is even”، در خروجی نمایش داده شده است. چون عدد 6 زوج است و بنابراین نتیجه عبارت 2%6 برابر با True خواهد بود. به همین دلیل کدهای داخل if اجرا خواهد شد.
مثال 2: متغیر num زوج است یا فرد؟
حالا مقدار num را به یک عدد فرد تغییر میدهیم. سپس کد بالا را مجددا اجرا میکنیم:
num = 3 if num % 2 == 0: print('num is even')
اجرای کد بالا، هیچ خروجی ندارد! چون عدد 3 زوج نیست. بنابراین چون شرط برآورده نشده، پایتون از روی if میپرد و اصلا به داخل آن نگاه نمیکند. اگر بخواهیم در حالتی که عدد فرد باشد، عبارت “num is odd” نمایش داده شود چه؟ یعنی زمانی که num زوج باشد عبارت “num is even” در خروجی نمایش داده شود. اما در صورتی که num فرد باشد، عبارت “num is odd” در خروجی نمایش داده شود. برای این کار میتوانیم دوتا if بنویسیم:
num = 3 if num % 2 == 0: print('num is even') if num % 2 != 0: print('num is odd')
با اجرای این کد خواهیم داشت:
num is odd
مقدار num را تغییر دهید و نتیجه را ببینید. با کد بالا به نتیجه دلخواهمان رسیدیم. اما آیا راه سادهتری وجود ندارد؟ حتما باید if را دو بار تکرار کنیم؟ در بخش بعدی یک راه حل برای این مشکل ارائه خواهیم کرد…
دستور if else در پایتون
یکی دیگر از دستورات شرطی در پایتون، دستور if else در پایتون است. دستور if else در پایتون درواقع تعمیم یافتهای از دستور if است. تمپلیت این دستور به شکل زیر است:
به زبان ساده این دستور میگوید، اگر شرط (condition) برقرار بود، body1 اجرا شود. در غیر این صورت body2 اجرا شود! پس اگر مسالهای داریم که کلا دو حالت دارد، میتوانیم از این دستور استفاده کنیم و از نوشتن دوتا if جلوگیری کنیم. دقت کنید که عبارت else همسطح با if است. ولی برای body2 باید indentation رعایت شود.
مثال 3: حل مثال 2 با دستور if else
در مثال 1 متغیری با نام num تعریف کردیم. گفتیم تمایل داریم برای num-های زوج، عبارت “num is even” و برای num-های فرد، عبارت “num is odd” نمایش داده شود. این بار میخواهیم این کار را به جای دو if با عبارت if else انجام دهیم. برای این کار کافی است بنویسیم:
num = 5 if num % 2 == 0: print('num is even') else: print('num is odd')
num is odd
حالا مقدار num را به یک عدد زوج تغییر میدهیم:
num = 2 if num % 2 == 0: print('num is even') else: print('num is odd')
num is even
مشاهده میکنید که با استفاده از دستور if else در پایتون، توانستیم به نتیجه مطلوبمان برسیم.
مثال 4: آیا a بزرگتر از b است؟
هدف از این مثال مقایسه دو متغیر a و b است. میخواهیم اگر متغیر a بزرگتر از b باشد، عبارت ‘a is greater than b’ در خروجی نمایش داده شود. و اگر متغیر a از b کوچکتر باشد، عبارت ‘a is less than b’ در خروجی نشان داده شود. برای این کار از دستور if else در پایتون، به شکل زیر استفاده میکنیم:
a = 6 b = 3 if a > b: print('a is greater than b') else: print('a is less than b')
a is greater than b
حالا مقدار a و b را تغییر میدهیم:
a = 3 b = 7 if a > b: print('a is greater than b') else: print('a is less than b')
a is less than b
مشاهده میکنید که به نتیجه دلخواهمان رسیدیم. البته تقریبا رسیدیم! چرا؟ اگر a و b برابر باشند چه اتفاقی خواهد افتاد؟ ببینیم:
a = 3 b = 3 if a > b: print('a is greater than b') else: print('a is less than b')
a is less than b
مشاهده میکنید که این جواب درست نیست زیرا a و b برابرند! پس این مسئله چطور حل میشود؟ در بخش بعدی از پست «دستورات شرطی در پایتون» راه حل را خواهیم گفت…
دستور if elif else در پایتون
در این بخش میخواهیم یک تعمیم دیگر از دستور if را معرفی کنیم. این تعمیم، if elif else است. ساختار این دستور به شکل زیر است:
با نگاهی به تصویر بالا، میبینید که تنها تفاوت این دستور با if else، وجود elif است. elif این امکان را ایجاد میکند که هرچقدر که دلمان بخواهد شرط اضافه کنیم. در این صورت اگر شرط condition1، برآورده شود (True شود)، body1 اجرا میشود و بقیه شرطها بررسی نمیشوند. اگر شرط اول برآورده نشود، ولی شرط دوم (condition2) برآورده شود (True شود)، body2 اجرا شده و از بقیه شرطها صرف نظر میشود. به همین ترتیب، اگر همه شرطها false باشند، bodyN اجرا خواهد شد.
مثال 5: رفع مشکل مثال 4
در مثال 3 مشاهده کردیم در حالتی که a با b برابر بود، خروجی درستی نداشتیم. در این بخش میخواهیم با دستور جدیدی که یاد گرفتیم کاری کنیم که هنگامی که a و b برابر باشند، عبارت “a is equal to b” در خروجی نمایش داده شود. به این منظور کدی که در مثال 3 نوشتیم را به شکل زیر تغییر میدهیم:
a = 3 b = 3 if a > b: print('a is greater than b') elif a < b: print('a is less than b') else: print('a is equal to b')
a is equal to b
مشاهده میکنید که به هدفمان رسیدیم!
جمعبندی
در این پست دستورات شرطی در پایتون را بررسی کردیم. گفتیم یکی از دستورات شرطی، دستور if در پایتون است. در ادامه دو دستور if else در پایتون و دستور if elif else در پایتون که هردو تعمیم یافته دستور if هستند را آموزش دادیم. امیدوارم این آموزش مورد توجه شما قرار گرفته باشد. سوالها و نظرهایتان را برایمان کامنت کنید. در اسرع وقت به کامنتها پاسخ داده خواهد شد.
مطالب زیر را حتما مطالعه کنید
آموزش کتابخانه pandas
دستورهای پراستفاده pip
علامت تقسیم ، باقیمانده و خارج قسمت در پایتون
نصب کتابخانه matplotlib در پایتون
کوندا چیست
آموزش matplotlib در پایتون
5 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
درتمرین if-elif-elseاگر دو مقدار مساوی باشد به نتیجه نمیرسم
فکرکنم تو مثال کدنویسی آخر تو شرط elif باید نوشته میشد a<b
بله بله، اصلاح شد.
ممنون از دقت شما🌹
سلام ممنون از آموزش های خوبتون🌻
فقط یک سوالی دارم چرا از آموزش ۴ به اینور پی دی اف ها رو قرار ندادین؟خیلی خوب بودن، کاش میزاشتین
سلام
سپاس 🌹🙏
آموزشها دزحال آپدیت هست و PDF آموزش پایتون سایر جلسات رو هم انشالله قرار میدیم.