دستورات شرطی در پایتون (if…else در پایتون)

دستورات شرطی یکی از ارکان زبان‌های برنامه نویسی هستند. اگر دستورات شرطی را از زبان‌های برنامه نویسی حذف کنید برنامه نویسی تقریبا غیر ممکن خواهد بود.

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

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

  • شرط مساوی بودن دو مقدار: a == b
  • شرط مساوی نبودن یا مخالف بودن: a != b
  • شرط کوچکتر از: a<b
  • شرط کوچکتر یا مساوی: a <= b
  • شرط بزرگتر: a > b
  • شرط بزرگتر مساوی: a >= b

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

یک دستور if با کلمه‌ی کلیدی if شروع می‌شود. به مثال زیر دقت کنید.

>>> a=10
>>> b=-2
>>> if a>b:
...     print('a is greater thab b')
... 
a is greater than b

در این مثال با استفاده از دستور if و یک دستور شرطی دو متغیر را باهم مقایسه کردیم.

دستور شرطی مورد استفاده a , b را با هم مقایسه می‌کند و در صورتی که a از b بزرگتر باشد دستور بلوک اجرا می‌شود و در غیر اینصورت دستور موجود در بلوک if اجرا نمی‌شود.

اما دستورات بلوک if چگونه مشخص می‌شود؟

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

a=33
>>> b=200
>>> if b>a:
... print('b is greater than a')
  File "<stdin>", line 2
    print('b is greater than a')
    ^
IndentationError: expected an indented block

دستور elif در پایتون

کلمه‌ی کلیدی elif برای ترکیب چند شرط if استفاده می‌شود. این کلمه‌ی کلیدی همان کلمه‌ی کلیدی elseif در پی‌اچ‌پی یا دستور ترکیبی else if در زبان‌های خانواده‌ی سی است.

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

اگر شرط if قبلی صحیح باشد و بلوک if اجرا شود دیگر این دستور و بلوکش اجرا نمی‌شود در غیر اینصورت دستوری شرطی که بعد از 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

دقت کنید که این دستور هم سطح با دستور if است و تو رفتگی ندارد.

کلمه کلیدی Else در پیاتون

دستور else همیشه پس از if یا elif استفاده می‌شود.در صورتی که شرط دستورهای if , elif برقرار نشود مجموعه دستورات بلوک else اجرا خواهد شد. اما اگر با برقرار شدن یکی از شرط‌ها if یا 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")

در این مثال اگر b بزرگتر از a باشد فقط بلوک if اجرا خواهد شد و اگر a مساوی b باشد تنها بلوک elif اجرا می‌شود و در صورتی که هیچ کدام از شرط‌های مذکور برقرار نباشد بلوک 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 قرار فقط یک دستور اجرا بشه یا در بلوک if فقط یک دستور دارید می‌توانید آن دستور را بعد از دستور if بنویسید. به مثال زیر نگاه کنید.

>> a=2
>>> b=3
>>> if a<b: print('b greater than a')
... 
b greater than a

فرم کوتاه شده if … else

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

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

دقت کنید که دستوری که بعد از if قراره اجرا بشه را قبل از if نوشته شده است.

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

تکه کد بالا معادل تکه کد زیر می‌باشد:

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

استفاده از عمگرهای منطقی در دستورهای شرطی

با استفاده از عملگرهای منطقی می‌توانید شرط‌ها را در دستورهای if , elif ترکیب نمائید.

>>> a = 200
>>> b=33
>>> c = 500
>>> if a > b and c > a:
...     print("both conditions are true")
... else:
...     print("one of conditions or both theme are false")
... 
both conditions are true

جهت درک بهتر مقادیر a, b , c را تغییر دهید و تست نمائید.

>>> 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 تو در تو

>>> 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!

دستور pass

به صورت پیش فرض بلوک دستور if نمی‌تواند خالی باشد. اما پایتون راه حلی برای آن دارد. اگر می‌خواهید هیچ دستوری در بلوک if اجرا شود دستور pass را را در بلوک if استفاده نمائید.

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

خوشحال می‌شویم اگر دیدگاه خود را در باره‌ی این مطلب بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *