آموزش پایتون به زبان ساده: عبارات شرطی

امروز قصد دارم تا یه قابلیتی رو بهتون یاد بدم که برنامه‌های خودمون رو از یکنواختی و ثابت بودن در بیاریم. اگه دقت کرده باشین، ما تا به حال کدهایی رو نوشتیم که تقریبا خروجی ثابتی داشتند و از ابتدای کد تا انتهای کد، خط به خط اجرا میشدن. 
گاهی مواقع ما قصد داریم که به ازای برقرار بودن یه سری شرایط بخشی از کدها اجرا بشن. یا به عبارتی اگه شرط مورد نظرمون برقرار نبود، اون تکه از کدها اجرا نشن. در اینجا هستش که باید از عبارات شرطی یا if استفاده کنیم. در زبان پایتون انواع مختلفی برای تعریف if وجود داره. از ساده گرفته تا پیچیده که در این مقاله قصد داریم اونا رو بررسی کنیم.

قبل از پرداختن به سینتکس شرط‌ها اجازه بدین تا یه سری مطالب پایه‌ای رو بررسی کنیم. همون‌طور که می‌دونید شرط‌های به طور کلی دو حالت دارند: درست یا غلط. که توی زبان انگلیسی یا به طور ویژه در زبان‌های برنامه‌نویسی بهشون میگن: True (درست) و False (غلط).
ابتدا بیاین برای دستگرمی یه سری شرط‌ها رو بررسی کنیم و خروجی اونا رو ببینیم تا بیشتر با عبارات منطقی آشنا بشیم.

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

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

بررسی تساوی دو متغیر

>>> name = ‘ali’
>>> name =‌= ‘ali’

اگه این دو تا خط رو به ترتیب در محیط پایتون شل وارد کنید، خروجی True رو نشون میده. حالا بیاین این دو تا خط رو توضیح بدیم.

توضیح
در خط اول ما یه دونه = می‌بینیم که این عملگر انتساب هستش. به عبارتی، مقدار ‘ali‘ رو به متغیری با نام name انتساب داده.
در خط دوم ما دوتا کاراکتر = می‌بینیم که اینجا به معنی شرط برابر بودن هستش نه انتساب. به عبارتی این خط میگه که آیا مقدار متغیر name با مقدار ‘ali’ برابر هستش یا نه.
از اونجایی که این شرط برقراره، خروجی ما درست یا True هستش.

حالا بیاین کدهای بالا رو یه بار دیگه بازنویسی کنیم و نتیجه رو ببینیم:

>>> name = ‘reza’
>>> name == ‘ali’

این بار مقدار خروجی ما غلط یا False هستش چون مقدار ‘reza‘ با ‘ali‘ برابر نیستش.

عملگر نامساوی

تا اینجا عملگر مساوی بودن رو بررسی کردیم. حالا میخوایم برعکس این عملگر رو هم معرفی کنیم: عملگر نامساوی. یعنی چه؟
این یعنی اگه مقدار دو تا متغیر ما برابر نبودن اون وقت نتیجه درسته و اگه مقدار دو تا متغیر برابر بودن نتیجه نادرسته. عملگر نامساوی رو با =! نشون میدیم. برای نمونه کدهای زیر رو تو محیط پایتون شل وارد کنید.

>>> name = ‘reza’
>>> name != ‘ali’

همون مثال قبلی هستش، اما اینبار نتیجه‌ی درستی میده.

این دو تا عملگر فقط ویژه رشته‌ها نیستند و برای مثال میشه برای داده‌های عددی هم استفاده کرد.

برای مقادیر عددی میشه عملگرهای بیشتری به کار برد. مثل کوچک‌تر، بزرگتر و… که با عملگرهایی مثل > و < و… نشون میدن و باهاشون میشه شرط‌ها رو بررسی کرد.

خب. تا اینجا یه آشنایی کلی با نتیجه‌ی عبارات منطقی به دست اوردیم. حالا بریم سراغ تعریف if ها یا شرط‌ها.

عبارات شرطی if

عبارات شرطی ساده

x = 5
if x > 4 :
 print(‘your number is bigger than 4’)
print(‘finish the code’)

توضیح:
همونطور که در کد بالا مشاهده می‌کنید، ابتدا ما یه متغیر با مقدار ۵ تعریف کردیم و در خط بعد یه دستور شرطی نوشتیم که با if شروع شده و بعد از اون x > 4 اومده که این به معنای اینه که اگر مقدار x بزرگتر از ۴ بود اون وقت دستورات مرتبط با شرط رو اجرا کن و در غیر اینصورت اونا رو نادیده بگیر.
در خط بعد به اندازه ۴ فاصله یا tab فاصله داریم و بعد از اون دستور ما شروع میشه. که در اینجا یه پیام رو نشون میده و بعد از اون هم دستور شرطی ما تموم شده و در خط بعد یه دستور معمولی رو داریم و اگه دقت کنید دیگه نسبت به if تورفتگی و فاصله نداره.

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

حالا ازتون میخوام که این کد رو اجرا کنید و نتیجه رو ببینید.

در خروجی متوجه میشین میشین که فقط پیام ‘finish the code’ چاپ شده. به این علت که شرط ما درست نبوده و اون پیام چاپ نشده. حالا برای اینکه با طرز کار شرط‌ها بیشتر آشنا بشین ازتون میخوام که دو تا کار انجام بدین.

یک: مقدار x رو تغییر بدن و یه عدد بیشتر از ۴ بذارین.
دو: به ابتدای خط آخر برین و یه فاصله tab ایجاد کنید، به گونه‌ای که شروع اون خط مثل خط بالایی‌اش باشه.
حالا کد رو ذخیره و اجرا کنید و نتیجه رو ببینید.

عبارت شرطی if-else

خب تا اینجا به بررسی شرط‌های ساده پرداختیم. به عبارتی ما فقط یه وضعیت داریم که میخوایم چک بشه. اما گاهی اوقات ما قصد داریم که مثلا اگه شرط موردنظر ما درست نبود، بخش دیگه‌ای رو اجرا کنه.
یعنی اگه در ابتدا شرط if ما درست بود، کدهای مربوط به اون بخش رو اجرا می‌کنه و کاری به بخش else نداره و در پایان هم از اون بخش اصطلاحا می‌پره و ادامه برنامه رو اجرا می‌کنه. اما اگه شرط if درست نباشه، میره سراغ بخش else و کدهای مربوطه رو اجرا می‌کنه.
برای توضیحات بیشتر اجازه بدین یه مثال بزنم.

x = 18
if x == 18:
    print(‘Your number is 18’)
else:
    print(‘Your number is not 18’)
print(‘finish the code’)

عبارات شرطی if-elif

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

x = 5
if x == 18:
    print(‘Your number is 18’)
elif x < 18: 
    print(‘Your number is smaller than 18’) 
elif x > 18:
    print(‘Your number is bigger than 18’)
print(‘finish the code’)

همون‌طور که می‌بینید ما به هر اندازه می‌تونیم elif قرار بدیم و شرط‌های مختلفی رو بررسی کنیم. حتی می‌تونیم else آخری رو هم نیاریم.

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


منبع: آموزش پایتون به زبان ساده: عبارات شرطی - وبسایت شخصی محمدحسین میثاق‌پور