شرط If ... Else در پایتون

شرط If ... Else در پایتون

شرط ها در پایتون

زبان برنامه نویسی پایتون مانند تمام زبان های برنامه نویسی دیگر از شروط رایج ریاضی پشتیبانی می کند:

  • مساوی است با: 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")

خروجی:

b is greater than a

در این مثال از دو متغیر استفاده کرده ایم (a و b) تا ببینیم آیا b بزرگ تر از a است یا خیر و از آنجا که a برابر 33 و b برابر با 200 است مشخصا b بزرگ تر است. نتیجه ی چنین شرطی true (صحیح) می شود بنابراین کد داخل if اجرا خواهد شد که در مثال بالا یک دستور print است.

نکته ی مهم: زبان پایتون مانند زبان های برنامه نویسی دیگر از curly braces (علامت {}) برای مشخص کردن scope و حدود بلوک هایی مانند شرط if استفاده نمی کند بلکه همیشه متوجه indentation (فضای خالی قبل از خط - تو رفتگی) کدها است.

به همین دلیل کد زیر کاملا غلط است چرا که هیچ indentation ای ندارد:

a = 33
b = 200

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

خروجی خطای زیر خواهد بود:

IndentationError: expected an indented block

کلیدواژه های elif و else

کلیدواژه ی elif در زبان پایتون می گوید «اگر این شرط درست نیست به سراغ شرط بعدی برو!». به مثال زیر توجه کنید:

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

خروجی:

a and b are equal

در واقع این کلیدواژه معادل همان elseif در زبان php است. در مثال بالا a با b برابر است و به همین دلیل نتیجه ی شرط اول false خواهد بود اما شرط elif صحیح است و به همین دلیل کدهای درون آن اجرا خواهد شد.

کلیدواژه ی else تفاوت بزرگی با elif دارد؛ 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 is greater than b

در کد بالا دو شرط و یک else داریم؛ شرط اول می گوید آیا b بزرگ تر از a است؟ شرط دوم می گوید آیا a برابر با b است؟ از آنجایی که هر دو شرط اول غلط هستند، پایتون از آن ها رد می شود و به else می رسد که یعنی هر چیزی بود را قبول کن! بنابراین کد درون else اجرا می شود. توجه داشته باشید که در مثال بالا یک مسئله ی منطقی ساده را در نظر گرفته ایم اما اگر a را یک رشته و b را یک Boolean هم قرار می دادیم باز هم قسمت else اجرا می شد.

برای استفاده از else نیازی به elif وجود ندارد:

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

خروجی:

b is not greater than a

شکل خلاصه ی if و if … else

اگر دستور داخل if فقط یک دستور باشد (مثلا print) می توانید از حالت خلاصه ی if استفاده کنید:

a = 200
b = 33

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

خروجی:

"a is greater than b"

همچنین اگر فقط یک دستور برای if و یک دستور برای else دارید، می توانید از شکل خلاصه ی زیر برای کدنویسی استفاده کنید:

a = 2
b = 330

print("A") if a > b else print("B")

خروجی حرف B خواهد بود.

در نظر داشته باشید که می توانید چندین else را در یک خط جا بدهید:

a = 330
b = 330

print("A") if a > b else print("=") if a == b else print("B")

خروجی علامت = است. کد بالا می گوید A را پرینت کن اگر a از b بزرگ تر باشد در غیر این صورت (else) = را پرینت کن اگر a مساوی با b باشد در غیر این صورت (else) فقط B را پرینت کن.

کلیدواژه های and و or

کلیدواژه ی and (به معنی «و») یک اپراتور منطقی است و برای ترکیب کردن شرط ها به کار می رود؛ به طور مثال زمانی که بخواهیم هر دو شرط یا سه شرط یا چهار شرط و... صحیح باشند (همه ی شرط ها صحیح باشند) می توانیم از and استفاده کنیم:

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

خروجی: Both conditions are True

برای آنکه شرط if صحیح باشد (true) باید هر دو شرط که با and به هم وصل شده اند نیز صحیح باشند.

کلیدواژه ی Or (به معنی «یا») نیز شرط ها را ترکیب می کند اما یک تفاوت اصلی با And دارد؛ or می گوید یکی یا بیشتر از یکی از شرط ها باید صحیح باشند:

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

خروجی:

At least one of the conditions is True

در اینجا فقط یکی از شرط ها صحیح است، بنابراین خروجی شرط if صحیح یا true می شود اما اگر از and استفاده کرده بودیم خروجی false می شد.

شرط های تو در تو (nested)

شما می توانید به تعداد دلخواه خود شرط های if را درون همدیگر قرار دهید:

x = 41

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

خروجی:

Above ten,
and also above 20!

امیدوارم به طور کامل با شرط های if آشنا شده باشید. این شرط ها از عناصر بسیار مهم در برنامه نویسی هستند و یادگیری آن ها الزامی است. در قسمت بعد در مورد حلقه های while و for صحبت خواهیم کرد.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری از مقدماتی تا پیشرفته با پایتون توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.