Python If ... Else

دستورات شرطی و if در پایتون

پایتون شروط منطقی رایج در ریاضیات را پشتیبانی می‌کند.

  • تساوی: a == b
  • برابر نبودن: a != b
  • کمتر از: a < b
  • کمتر یا مساوی: a <= b
  • بیشتر از: a > b
  • بیشتر یا مساوی: a >= b

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

دستور if با استفاده از کلیدواژه if نوشته می‌شود.


a = 33
b = 200
if b > a:
  print("b is greater than a")

خروجی:

در مثال بالا از دو متغیر a و b استفاده کرده‌ایم، به صورتی که در دستور if بررسی می‌شود که آیا b از a بزرگتر است یا خیر. از آنجا که مقدار a برابر 33 و مقدار b برابر 200 است و 200 بزرگتر از 33 می‌باشد، با استفاده از دستور if عبارت "b بزرگتر از a است" را روی صفحه نمایش پرینت می‌کنیم.

فاصله‌گذاری

نوشتن کد در پایتون وابسته به فاصله‌گذاری جهت تعیین محدوده (scope) کد است. در سایر زبان‌های برنامه‌نویسی اغلب از آکولاد به این هدف استفاده می‌شود.

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


a = 33
b = 200
if b > a:
print("b is greater than a") # you will get an error

خروجی:

elif

کلیدواژه elif بیانی است از گفتن اینکه "اگر شرط قبلی برقرار نبود آنگاه این شرط را بررسی کن".


a = 33
b = 33
if b > a:
  print("b is greater than a")
elif a == b:
  print("a and b are equal")

خروجی:

در مثال بالا a و b باهم برابر هستند. در نتیجه شرط اول صحیح نیست و پایتون به سراغ شرط بعدی که تساوی دو متغیر را بررسی می‌کند می‌رود. چون شرط دوم برقرار است، عبارت "a و b با هم برابر هستند" روی صفحه نمایش پرینت می‌شود.

else

کلیدواژه else هر آنچه را که توسط شروط قبلی بررسی نشده را بررسی می‌کند.


a = 200
b = 33
if b > a:
  print("b is greater than a")
elif a == b:
  print("a and b are equal")
else:
  print("a is greater than b")

خروجی:

در مثال بالا a از b بزرگتر است. بنابراین شرط اول و همچنین شرط elif هیچکدام درست نیستند. نتیجه آنکه به سراغ else رفته و عبارت "a بزرگتر از b است" روی صفحه نمایش پرینت می‌شود.

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


a = 200
b = 33
if b > a:
  print("b is greater than a")
else:
  print("b is not greater than a")

خروجی:

کوتاه نویسی if

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

if a > b: print("a is greater than b")

کوتاه نویسی if...else

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

a = 2
b = 330
print("A") if a > b else print("B")
تکنیک فوق به عملگرهای سه‌تایی (Ternary Operators) و یا عبارات شرطی (Conditional Expressions) مشهور است.

and

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


a = 200
b = 33
c = 500
if a > b and c > a:
  print("Both conditions are True")

خروجی:

or

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


a = 200
b = 33
c = 500
if a > b or a > c:
  print("At least one of the conditions is True")

خروجی:

if تو در تو

می‌توان داخل یک دستور if دستور if دیگر داشت. به این حالت دستور if تو در تو گفته می‌شود.


x = 41

if x > 10:
  print("Above ten,")
  if x > 20:
    print("and also above 20!")
  else:
    print("but not above 20.")

خروجی:

دستور pass

دستور if نمی‌تواند خالی باشد، ولی اگر به هر دلیلی دستور if بدون هیچ محتوایی داشتید، جهت جلوگیری از بروز خطا از دستور pass استفاده کنید.

a = 33
b = 200
if b > a:
    pass