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

در بیشتر زبان های برنامه نویسی چند دستور شرطی وجود دارد که هر کدام ویژگی های خاص خود را دارند. برای مثال در زبان برنامه نویسی ++c یا GML دستورات if و switch شرطی هستند، ولی switch مخصوص بررسی یک مورد در چند حالت است، اما در دستور if برای انجام این کار باید از دستور دیگری استفاده کرد.

کار با دستور if در زبان python اینگونه است:

if (expression):
statement

دستور شرطی if در پایتون به تنهایی می تواند چند شرط را مورد بررسی قرار دهد و در صورت برقرار بودن شرط ها یک مجموعه دستورات را اجرا کند.

if (شروط):
مجموعه دستورات

برای اینکه چند شرط مورد بررسی قرار بگیرند می توان از or یا and استفاده کرد. کاربرد این دو دستور از معنای لغویِشان معلوم است:

دستور or در شرط:

با استفاده از or در شرط، مانند این است که در بین شرط ها "یا" استفاده شود. برای مثال اگر "شرط یک" برقرار بود یا "شرط دو" مجموعه دستورات اجرا شود.

if variable01==True or variable02==True:
print("bdaneshgar.ir")

در مثال بالا اگر شرط variable01=True یا variable02=True برقرار باشد مقدار رشته ای print می شود.

دستور and در شرط:

با استفاده از and در شرط، مانند این است که در بین شرط ها "و" استفاده شود. برای مثال اگر "شرط یک" و "شرط دو" برقرار بودند مجموعه دستورات اجرا شوند.

if variable01==True and variable02==True:
print("bdaneshgar.ir")

در مثال بالا اگر دو شرط variable01=True و variable02=True هر دو برقرار بودند مقدار رشته ای print می شود.

از این دو دستور می توان در یک دستور شرطی استفاده کرد. اما برای اینکار باید اولویت بررسی شرط ها را با پرانتز مشخص کنید. برای مثال:

if var03==True and (var01==True or var02==True):
print("Beyamooz")

در مثال بالا ابتدا شروط درون پرانتز بررسی می شوند، سپس شروط بیرون پرانتز. برای مثال:

var01=False
var02=True
var03=True
if var03==True and (var01==True or var02==True):
print("Hello")

در مثال بالا برای اجرای شدن مجموعه دستورات باید var01 یا var02 برابر True باشند و var03=True باشد. اگر پرانتز ها را از شرط حذف کنیم شروط دو به دو از چپ به راست بررسی می شوند. یعنی باید var03 و var01 هر دو True باشند یا فقط var02 برابر True باشد. در مثال بالا Hello پرینت می شود. مثالی دیگر:

var01=False
var02=True
var03=True
var04=False
if (var01==False and (var02==True or var03==True)) or var04==True:
print("Hello")

در ابتدا درونی ترین پرانتر بررسی می شود و سپس پرانتر بعدی. اگر شروط درون پرانتز یا شروط بیرون پرانتز برقرار بود مجموعه دستورات اجرا می شود. در مثال بالا Hello پرینت می شود.

دستور elif:

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

if (expression01):
statement01
elif (expression02):
statement02
if (شروط نسخه 1):
مجموعه دستورات 1
else (شروط نسخه 2):
مجموعه دستورات 2

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

var01=False
var02=False
var03=True
var04=True
if var01==True:
print("bdaneshgar.ir")
elif var02==True:
print("Hello")
elif var03==True:
print("Hi")
elif var04==True:
print("Bye")

در مثال بالا چون شرط اول برقرار نیست شرط دوم مورد بررسی قرار می گیرد و چون شرط دوم هم برقرار نیست شرط سوم مورد بررسی قرار می گیرد. چون شرط سوم برقرار است Hi پرینت شده و برنامه از شرط خارح می شود و دیگر شرط چهارم مورد بررسی قرار نمی گیرد.

دستور else:

دستورات else زمانی اجرا می شود که شروط قبلی اش نادرست باشد. توجه کنید که else مانند elif نیاز به یک if دارد و هر مجموعه ای از شروط با یک if مشخص می شوند.

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

if (expression):
statement01
else:
statement02
if (شروط):
مجموعه دستورات 1
else:
مجموعه دستورات 2

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

var01=True
if (var01==False):
print("bdaneshgar.ir")
else:
print("Hi")

در مثال بالا اگر var01=False باشد bdaneshgar.ir پرینت می شود ولی چون var01 برابر True است و شرط برقرار نیست دستورات else اجرا می شود و Hi پرینت می شود.

از دستور else می شود در کنار دستور elif استفاده کرد.

یعنی اگر هیچ کدام از شروط برقرار نباشد مجموعه دستورات else اجرا می شود. برای مثال:

var01=True
var02=True
var03=True
var04=True
if var01==False:
print("bdaneshgar.ir")
elif var02==False:
print("Hello")
elif var03==False:
print("Hi")
elif var04==False:
print("Bye")
else:
print("Learn with we")

در مثال بالا چون هیچ کدام از شروط برقرار نیست مجموعه دستورات else برقرار می شود و Learn with we پرینت می شود.

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