پایتون A تا Z : دوره کامل توسعه پایتون برای مبتدیان

شرط های پایتون (IF و ELSE و ELIF و تو در تو و خلاصه/جامع)

همه مطالبی را که تاکنون دیده اید شامل اجرای پی در پی است ، که در آن عبارات همیشه یکی پس از دیگری انجام می شوند : دقیقاً به همان ترتیبی که شما مشخص کرده اید .

اما اغلب جهان پیچیده تر از آن است. غالباً ، یک برنامه برای اجرای باید از برخی عبارات بدون اجرای آن ها عبور کند ، یک سری عبارات را به صورت تکراری اجرا کند یا حتی بین چند عبارت ، یکی را انتخاب کند. و این همان جایی است که مفهوم اصلی کنترل ساختار مطرح می شود ، بنابراین می توانید کنترل کنید که کدام دستورالعمل ها در برنامه اجرا شوند.


تعریف
در زبان های برنامه نویسی ، بیشتر اوقات می خواهید جریان اجرای برنامه خود را کنترل کنید ، زیرا شما می خواهید مجموعه ای از دستورات را فقط در صورت برآورده شدن شرایط مورد نظر ، اجرا کنید و در صورتی که شرایط مورد نظر برآورده نشود ، دستور متفاوتی اجرا شود.

توجه داشته باشید که به ساختار شرطی ، ساختار تصمیم گیری نیز می گویند.

Conditional

تصمیم گیری زمانی است که بسته به مقدار متغیر ، یک برنامه دارای بیش از یک گزینه عملکرد باشد.

در دنیای واقعی ، شما معمولاً باید اطلاعات پیرامون خود را ارزیابی کنید و سپس بر اساس آنچه مشاهده می کنید ، یک اقدام یا روش دیگر را انتخاب کنید. درست؟

به عنوان مثال: به یک چراغ راهنمایی فکر کنید! وقتی سبز شد ، رانندگی خود را ادامه می دهید. وقتی می بینید چراغ زرد می شود ، سرعت خود را کم می کنید و وقتی قرمز می شود ، متوقف می شوید! این ها تصمیمات منطقی هستند که به رنگ چراغ راهنمایی بستگی دارند.

خوشبختانه ، وقتی برنامه شما نیاز به تصمیم گیری در پایتون دارد ، عبارت if دستور انجام این نوع تصمیم گیری است. و امکان اجرای مشروط یک عبارت یا گروهی از عبارات را بر اساس مقدار یک عبارت بولی(صحیح یا غلط)  امکان پذیر می کند.


عبارت if

برای نوشتن برنامه های مفید ، تقریباً همیشه به توانایی آزمایش شرایط ، و تغییر رفتار برنامه متناسب با وضعیت موجود نیاز داریم.

خوشبختانه عبارات شرطی این توانایی را به ما می دهد.

if

دستورات اگر ( if )  در بسیاری از زبان های برنامه نویسی یکی از عبارات شرطی است که بیشتر مورد استفاده قرار می گیرد.

این دستور تصمیم گیری می کند که آیا عبارات خاصی باید اجرا شوند یا خیر.

دستورات اگر ( if ) برای یک شرط مشخص بررسی می کند: وقتی عبارت boolean درست است ، مجموعه کد داخل بلوک if اجرا می شود. از طرف دیگر: وقتی عبارت False باشد ، مجموعه ای از کد داخل بلوک if رد می شود و به هیچ وجه اجرا نمی شود!

Python-if-Statement-Syntax

حال ، بیایید نگاهی به دستور آن بیندازیم. عبارت boolean بعد از دستور if شرط نامیده می شود. چند نکته که باید در مورد جمله ها به خاطر بسپارید:

دو نقطه (:) مهم و مورد نیاز است. صورت شرطی عبارت های شرطی تو در تو را از هم جدا می کند.
خط بعد از صورت شرطی باید به درستی تورفتگی داشته باشد. در پایتون استفاده از چهار فاصله برای ایجاد تورفتگی استاندارد است.
هر زمان که عبارت Boolean درست باشد ،  ، همه ی عبارت های موجود در  خط بعد از دو نقطه که دارای 4 فاصله تورفتگی می کنند ، اجرا می شوند.


عبارت شرطی در یک خط

اگر به جای چندین خط در کد برای شرط ، فقط یک کد منحصر به فرد برای اجرا دارید ، می توانید همه آن ها را در یک خط قرار دهید.

این یک قانون نیست ، بلکه فقط یک روش معمول در میان برنامه نویسان است. بنابراین ، هر دو مورد زیر از نظر عملکردی برابر هستند:

می تواند بیش از یک عبارت در همان خط وجود داشته باشد که توسط علامت های نقطه ویرگول از هم جدا شده باشد. ولی خب معنیش چی میشه؟ اگر شرط True است ، تمام عبارات را اجرا کنید. در غیر این صورت ، هیچ یک را اجرا نکنید.

 


درستور pass در پایتون

گاهی اوقات ، داشتن بخشی بدون عبارت مفید است: معمولاً به عنوان نگهداره ی مکان ، جایی که در نهایت یک بلوک کد در آن قرار می دهید ، که هنوز آن را اجرا نکرده اید.

از آنجا که پایتون به جای جداکننده ها از تورفتگی استفاده می کند ، تعیین بلوک خالی امکان پذیر نیست. اگر دستور if را وارد کنید ، باید چیزی پس از آن بنویسید( یا در همان خط قرار داشته باشد ، یا در خط بعدی بعد از 4 فاصله)

برای راضی نگه داشتن مفسر(برنامه که در آن کد پایتون را می نویسید) در هر جایی که عبارتی به صورت دستور لازم باشد ، می توانید از عبارت “pass” استفاده کنید که هیچ کاری نمی کند و فقط به عنوان یک رزرو کننده ی آن مکان در قطعه کد نوشته شده ، عمل کند. به عنوان مثال:


مثال
اکنون که می دانید چطور یک شرط را درست بررسی کنید ، بیایید تمرین کنیم.

به عنوان مثال ، بگذارید بگوییم شما در حال ثبت نمره برای یک دوره خاص هستید. نمره کل 100 است ، با 50 امتیاز برای کار تئوری ، و 50 برای نمره عملی. اگر نمره بیش از 100 باشد می خواهید یک پیام خطا یا هشدار نمایش دهید. چگونه تمرین را انجام می دهید؟


عبارت های if – else
شما می دانید که چگونه می توان از دستور if ، برای اجرای یک عبارت شرطی  یا مجموعه ای از چندین دستور استفاده کرد. اکنون وقت آن است که دریابید چه کارهای دیگری می توانید انجام دهید ، تا  روند اجرای برنامه خود را کنترل کنید.

Python-if-else-Statement-Syntax

بعضی اوقات ، می خواهید یک شرایط را ارزیابی کنید و اگر درست است یک مسیر را طی کنید تا یک مورد یا بیشتر اتفاق بیفتد ، اما اگر اشتباه باشد یک مسیر جایگزین را تعیین کنید و اتفاق دیگری رخ دهد.

درصورتی که شرط if ، اشتباه باشد ، عبارتی که برای else تعریف کرده ایم اجرا شود.

برای درک جریان کنترل یک عبارت if-else ، به نمودار روند اجرای دستور نگاهی بیندازید:

عبارت if بعد از 4 فاصله  تورفتگی نوشته می شود. اگر عبارت True باشد: اولین عبارت ها اجرا می شود ، سپس عبارت موجود در else حذف می شود. ,gd وقتی شرط if نادرست است: از اولین عبارت صرف نظر می شود ، سپس عبارت موجود در else به جای آن اجرا می شود.

محدودیتی در تعداد عبارات وجود دارد که می تواند در زیر دو بند دستور if-else بیاید ، اما حداقل باید در هر بلوک یک عبارت وجود داشته باشد! در هر صورت ، اجرای کد ، پس از بلوک دوم از سر گرفته می شود. همچنین توجه داشته باشید که هر دو مجموعه عبارت با دو نقطه : تعریف می شوند .

مثال
در مثال قبلی. تصور کنید که می خواهید عبارتی نمایش دهید ، در حالی که امتیاز کل در واقع در محدوده آن بود – یعنی کمتر از 100. “زیرا این دقیقاً زمانی است که جمله if-else به شما کمک می کند.”

هنگام ضبط نمره برای یک درس خاص ، می خواهید با هم امتیازات قسمت تئوری و همچنین قسمت عملی را برای به دست آوردن نمره کل جمع کنید. اگر نمره کل بیشتر از 100 باشد ، می خواهید یک پیام هشدار دهنده نمایش دهید. و اگر کمتر از 100 است ، پیام “Score valid” را نمایش دهید. در اینجا راه حلی برای این مسئله ارائه شده است.


دستورات If / Elif / Else
گاهی اوقات ، بیش از دو احتمال وجود دارد ، بنابراین شما به بیش از دو شاخه نیاز دارید.

خوشبختانه ، یک عبارت شرطی دیگر در پایتون وجود دارد که برای آزمایش عبارات زیاد و به منظور بهینه سازی و افزایش کارایی کد شما استفاده می شود.

یک روش برای بیان چنین محاسبه ای نامیده می شود: شرطی های زنجیره ای یا else-if

Python-elif-Statement-Syntax

بیایید نگاهی به دستورات آن بیندازیم تا بفهمیم که چگونه می توانید یک دستور else-if را در پایتون اجرا کنید.

هر شرط به ترتیب بررسی می شود. اگر اولین شرط False باشد: مورد بعدی انجام می شود. اگر دوم False باشد: شرط بعد تری انجام می شود و به همین ترتیب.

اگر یکی از آن ها درست باشد ، شاخه مربوطه اجرا می شود و دستور پایان می یابد. حتی اگر بیش از یک شرط در عبارات زیر True باشد ، فقط اولین شاخه True اجرا می شود.

محدودیتی برای تعداد گزاره های else-if وجود ندارد مگر اینکه در نهایت کد شرطی فقط یک بار می توانید از else استفاده کنید گرچه میتوانید از نوشتن آن نیز صرف نظر کنید. عبارت else در صورتی اجرا می شود که تمام شرط های قبلی False باشند.


مثال
بیایید به مثال خود برگردیم و موردی را تصور کنیم که یکی از این نمرات از 50 فراتر رود اما کل هنوز هم کمتر از 100 باشد. فکر می کنید پس از آن چه اتفاقی می افتد؟

شرط می بندم درست حدس زدی ؟؟ این کد خروجی رو به رو می دهد: “Score validated. Your total is: 95”. اگرچه این اشتباه است ، از آنجا که می دانید حداکثر امتیازات فردی برای تئوری یا عملی نباید از 50 باشد.

چگونه می توانید این را در کد پایتون نشان دهید – با استفاده از دستور if-elif-else؟

یک راه برای بررسی این که آیا نمرات فردی برای تئوری و عملی بیش از 50 نباشد ، موجود است.


شرط های تو در تو
هنگامی که شما یک دستور if را در داخل عبارت if دیگری دارید ، این در دنیای برنامه نویسی لانه سازی نامیده می شود.

لازم نیست که همیشه یک عبارت ساده باشد . شما می توانید از مفهوم جمله های if و if-else و حتیif-elif-else برای ایجاد ساختار پیچیده تر استفاده کنید و چندین شرایط را در کد بررسی کنید.

اگر چه تورفتگی عبارات باعث آشکار شدن ساختار می شود ،  خواندن شرط های تو در تو بسیار سخت انجام می شود. به طور کلی ، بهتر است تا آنجا که می توانید از آن ها اجتناب کنید ، زیرا تورفتگی تنها راه تشخیص میزان لانه سازی است.

جمله if ، در داخل جمله if دیگر که در صورت جمله های شرطی دیگر وجود دارد ، خواندن کد را بسیار دشوار می کند. درست؟ اما ، بیایید نگاهی به یک نمونه از شرط های تو در تو بیندازیم:

شرط بیرونی شامل دو شاخه است. شاخه دوم ، حاوی گزاره if دیگری است که دارای دو شاخه مخصوص به خود است. همچنین این دو شاخه می تواند شامل عبارت های شرطی باشد. اکنون می بینید که چقدر سریع خواندن آن دشوار است حتی اگر خودتان کد را بنویسید.


عبارات شرطی
پایتون از یک دستور تصمیم گیری اضافی پشتیبانی می کند ، به نام: عبارت شرطی یا حتی عملگر سه گانه. در ساده ترین شکل ، دستور عبارت شرطی به شرح زیر است:

این کاملاً متفاوت از فرم های if است که قبلاً ذکر شده است ، زیرا این یک ساختار کنترلی نیست که جریان اجرای برنامه شما را کنترل کند.

این بیشتر شبیه یک عملگر است ، که یک عبارت را تعریف می کند.

در مثال بالا ، این عبارت شرطی ابتدا ارزیابی می شود. اگر درست باشد ، conditional_expression نتیجه expression_1 را برمی گرداند و اگر نادرست باشد نتیجه expression_2 را بر می گرداند .

به نامرتب بودن شرط توجه کنید: شرط میانی ابتدا ارزیابی می شود و بر اساس آن نتیجه: اگر درست باشد عبارت اولی را برمی گرداند و اگر اشتباه باشد عبارت آخری را برمیگرداند.

Python-Ternary-Operator-Syntax

همانطور که حدس زده اید ، استفاده معمول از عبارت شرطی برای انتساب متغیر است. به عنوان مثال ، فرض کنید می خواهید بزرگتر از دو عدد را پیدا کنید. البته ، تابع ()max  داخلی نیز وجود دارد که این کار را انجام می دهد که می توانید استفاده کنید. اما ، فرض کنید می خواهید کد خود را از ابتدا بنویسید. لذا ، می توانید از دستور استاندارد if-else  یا حتی دستور شرطی یک خطی استفاده کنید.

اما شما موافقت می کنید که عبارت شرطی خلاصه شده حتی کوتاه تر است و مسلماً خواناتر نیز هست:


مثال
در اینجا چند مثال دیگر آورده شده است که امیدوارم به شما کمک کند این مفهوم عبارات شرطی را روشن کنید:

در اولین مثال ، باران دارای مقدار بولی False است. بنابراین ، عبارت “اگر باران نمی بارد” درست است ، و منجر به برگرداندن مقدار سمت چپ عبارت شرطی ، که “ساحل” است ، و چاپ “بیا به ساحل برویم”! از طرف دیگر ، وقتی باران دارای مقدار بولی True است ، عبارت شرطی False است ، که منجر به چاپ “Let’s go to library” می شود! باشه؟ اگر می خواهید این ویدیو را مکث کرده و مثالهای دیگر را تجزیه و تحلیل کنیم.

عالی! اکنون زمان تمرین فرا رسیده است ، بنابراین: ویرایشگر کد مورد علاقه خود را باز کرده و به صفحه کلیدهای خود بروید!


جمع بندی
در این آموزش ، شما با انواع عبارت های شرطی در پایتون آشنا شده اید. این ها عباراتی هستند که جریان اجرا را در برنامه شما تغییر داده و کنترل می کنند. همه این مفاهیم برای توسعه کد پایتون پیچیده تر بسیار مهم هستند.

در دو آموزش بعدی ، شما دو ساختار کنترل جدید را یاد خواهید گرفت : دستور while ، و دستور for.

این ساختارها تکرار را آسان می کنند: اجرای یک عبارت یا مجموعه ای از عبارات ، به طور مکرر که به عنوان حلقه نیز شناخته می شود.

 

python-if-elif-else

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا