جلسه نهم دوره پایتون – آشنایی با دستورات شرطی در پایتون {دستورات if else}

مقدمه

ما تا کنون با انواع مختلفی از داده ها آشنا شدیم. حال وقت آن است که وارد حلقه ها و دستورات شرطی شویم. حلقه ها و دستورات شرطی بخش جدایی ناپذیر برنامه نویسی هستند و امروز قصد داریم با دستورات شرطی if else آشنا شویم. مثل همیشه پیشنهاد می شود جلسات قبل این دوره را از لینک های زیر مطالعه کنید:

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

آشنایی با دستورات شرطی 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 به مثال زیر توجه کنید:

# 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

مثالی از 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

مثالی از 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

خوب دوستان. به پایان این جلسه رسیدیم. مثل همیشه میتوانید ما را در تلگرام و یا اینستاگرام دنبال کنید. 

 

 

اشتراک گذاری:
مطالب زیر را حتما بخوانید

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