جلسه نهم دوره پایتون – آشنایی با دستورات شرطی در پایتون {دستورات if else}
مقدمه
ما تا کنون با انواع مختلفی از داده ها آشنا شدیم. حال وقت آن است که وارد حلقه ها و دستورات شرطی شویم. حلقه ها و دستورات شرطی بخش جدایی ناپذیر برنامه نویسی هستند و امروز قصد داریم با دستورات شرطی if else آشنا شویم. مثل همیشه پیشنهاد می شود جلسات قبل این دوره را از لینک های زیر مطالعه کنید:
- جلسه اول دوره پایتون – آشنایی با پایتون و ویژگی های آن
- جلسه دوم دوره پایتون- نصب پایتون
- جلسه سوم دوره پایتون- روش های اجرای برنامه پایتون
- جلسه چهارم دوره پایتون- متغیرها در پایتون
- جلسه پنجم دوره پایتون – بررسی نوع داده های عددی
- جلسه ششم دوره پایتون – رشته ها در پایتون
- جلسه هفتم دوره پایتون – لیست ها
- جلسه هشتم دوره پایتون- Tuple ها
آشنایی با دستورات شرطی if
از دستورات If else وقتی استفاده می شود که ما بخواهیم کاری را در صورتی که یک شرط برقرار باشد، انجام دهیم. البته شکل کاملتر if else به صورت if elif else می باشد که در ادامه به صورت مفصل در مورد آن صحبت میکنیم.
سینتکس عبارت شرطی if :
Sytex این دستور به صورت زیر است :
if test expression: statement(s)
در عبارت بالا برنامه test expression را بررسی می کند و statement را در صورتی اجرا می کند که شرط test expression درست باشد. اگر این شرط غلط باشد ، statement ها اجرا نمی شوند.
در پایتون بدنه یک عبارت if با میزان تو رفتگی ها مشخص می شود. بدنه یک if با تو رفتگی شروع می شود و هر وقت این تو رفتگی برداشته شود ، حلقه if پایان می یابد و دستوراتی که در ادامه آورده می شود جزو حلقه if نمی باشد.
نکته ای که باید در اینجا در نظر گرفت این است که مفسر پایتون عبارات غیر صفر را به عنوان True در نظر می گیرد. همچنین None و 0 به عنوان False در نظر گرفته می شوند.
فلوچارت مربوط به دستور if :
مثالی از دستور if :
برای فهم بهتر دستور if به مثال زیر توجه کنید:
# If the number is positive, we print an appropriate message num = 3 if num > 0: print(num, "is a positive number.") print("This is always printed.") num = -1 if num > 0: print(num, "is a positive number.") print("This is also always printed.")
اگر برنامه بالا را اجرا کنیم ، نتیجه خروجی به صورت زیر خواهد بود:
3 is a positive number This is always printed This is also always printed.
در کد بالا 0 < num شرط ماست. بدنه if در صورتی اجرا می شود که این شرط True باشد.
در مرحله اول وقتی که num را برابر 3 قرار می دهیم ، چون بزرگتر از 0 است ، پس این شرط True می شود و بنابراین بدنه if اجرا می شود.
در مرحله دوم وقتی num را برابر 1- قرار می دهیم ، شرط False می شود و به همین دقیق بدنه داخل if اجرا نمی شود و مفسر از آن عبور می کند.
توجه داشته باشید که دستور print که در خارج از بلوک if آمده است. (خط آخر کد) چون تو رفتگی ندارد ، پس جزو if نیست و همیشه اجرا می شود.
عبارت if else
ابتدا Syntax مربوط به این عبارت را ببینید:
if test expression: Body of if else: Body of else
عبارت if else شرط را بررسی می کند و اگر شرط درست بود ، بدنه if را اجرا می کند و اگر شرط غلط بود ، بدنه else را اجرا می کند. با استفاده از تو رفتگی ها هم میتوانیم بدنه هر کدام از if و else را تشخیص دهیم.
فلوچارت عبارت if else :
مثالی از if else :
برای واضح تر شدن بحث ، مثال زیر را ببینید:
# Program checks if the number is positive or negative # And displays an appropriate message num = 3 # Try these two variations as well. # num = -5 # num = 0 if num >= 0: print("Positive or Zero") else: print("Negative number")
در کدهای بالا وقتی که num برابر با 3 می باشد ، شرط صحیح است و بدنه if اجرا می شود و مفسر از بدنه else عبور می کند.
حال اگر به جای 3 ، مقدار num را برابر 5- قرار دهیم شرط مربوط به if غلط می شود و بدنه else اجرا می شود.
اما اگر مقدار num را برابر صفر قرار دهیم شرط مربوط به if باز هم صحیح می شود و بدنه if اجرا می شود و از بدنه else عبور می کند.
عبارت if elif else
Sytax مربوط به این عبارت در زیر آورده شده است:
if test expression: Body of if elif test expression: Body of elif else: Body of else
عبارت elif مخفف else if است. ( اگر با زبان C کار کرده باشید با این عبارت آشنا هستید. ) با استفاده از else if ما میتوانیم چندین شرط را چک کنیم. در واقع مفسر ابتدا شرط if را چک می کند و اگر آن شرط غلط باشد ، شرط elif اول را چک میکند و اگر با هم غلط بود ، شرط elif دوم را چک می کند و این کار را ادامه می دهد.
اگر تمامی شروط بالا از if و elif غلط بود ، در این صورت کدهای داخل بدنه else اجرا می شوند. توجه داشتید باشید که فقط یکی از بلوک های if elif else در هر مرحله اجرا خواهند شد.
نکته ی دیگری که باید به آن توجه کنیم این است که هر if فقط یک else می تواند داشته باشید اما برای داشتن elif محدودی ندارد و میتواند چند elif داشته باشد.
فلوچارتif elif else
مثالی از if elif else :
# In this program, # we check if the number is positive or # negative or zero and # display an appropriate message num = 3.4 # Try these two variations as well: # num = 0 # num = -4.5 if num > 0: print("Positive number") elif num == 0: print("Zero") else: print("Negative number")
وقتی که num عددی مثبت باشد عبارت Positive number پرینت می شود. وقتی که num صفر باشد ، عبارت Zero چاپ می شود و وقتی که num منفی باشد ، عبارت Negative number چاپ می شود.
if های تو در تو در پایتون
ما میتوانیم یک دستور if elif else را درون یک دستور if elif else دیگر داشته باشیم. به این حالت if های تو در تو (nested) گفته می شود. ( عبارت nested را به خاطر داشته باشید چون دربرنامه نویسی با آن برخورد خواهید کر.د )
ما میتوانیم هر تعدادی که نیاز داریم از if elif else ها تو در تو استفاده کنیم. این if elif else ها به وسیله تو رفتگی ها از یکدیگر جدا می شوند. البته استفاده چندین باره ممکن است کمی گیج کنند باشد و بنابراین پیشنهاد می شود تا حد امکان از نوشته if elif else ها با چندین مرتبه تو رفتگی خود داری کنیم.
مثالی از if های تو در تو:
برای در بهتر مفهوم if های تو در تو به مثال زیر دقت کنید:
# In this program, we input a number # check if the number is positive or # negative or zero and display # an appropriate message # This time we use nested if num = float(input("Enter a number: ")) if num >= 0: if num == 0: print("Zero") else: print("Positive number") else: print("Negative number")
اگر این کد را در سه مرحله اجرا کنیم و هر دفعه عدد متفاوتی را وارد کنیم نتیجه ها به صورت زیر خواهد بود:
خروجی 1 :
Enter a number: 5 Positive number
خروجی 2:
Enter a number: -1 Negative number
خروجی 3:
Enter a number: 0 Zero
خوب دوستان. به پایان این جلسه رسیدیم. مثل همیشه میتوانید ما را در تلگرام و یا اینستاگرام دنبال کنید.
دیدگاهتان را بنویسید