if چیست؟

با دستور if در پایتون میتوانیم شروطی برای اجرای بخشی از کدها بنویسیم تا با درست بودن آنها اجرا شوند. 

این شروط با عملگرهایی هستند که در درس های قبل با انها آشنا شدیم.

برای مثال به نمونه کد زیر توجه کنید:

x = 50
y = 20

if x > y:
  print("Hello World!")

در این مثال همانطور که میبینیم مقدار x از y بزرگتر است در نتیجه کد اجرا میشود.

 

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

  

 

نحو نوشتاری

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

در مثال زیر میبینیم که با تورفتگی ها این بخش تعیین میشود.

x = 50
y = 20

if x > y :
    print("Hello World!")

 

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

x = 50
y = 20

if x > y:
print("Hello World!")

عملگرهای مقایسه ای

در ادامه عملگرهای مقایسه ای را بین دو عبارت میبینیم:

عملگر کاربرد
x == y x با y برابر است .
x != y x با y برابر نیست.
x < y x از y کمتر است.
x <= y x کوچکتر یا مساوی با y است.
x > y x از y بزرگتر است.
x >= y x بزرگتر یا مساوی با y است.

elif چیست؟

این دستور به ما کمک میکند که به جای یک شرط ، از دو یا چند شرط استفاده کنیم.

برای درک بهتر این موضوع مثال زیر را مشاهده کنید تا نکات آنرا بررسی کنیم.

x = 5
y = 5
if x > y:
  print("x از y بزرگتر است.")
elif x == y:
  print("x برابر با y است.")
  • در نمونه کد بالا ابتدا یک دستور if مینویسیم تا شرط اول را برقرار کنیم که ببینیم آیا x از y بزرگتر است یا خیر
  • همچنین در شرط دوم بررسی میکنیم که آیا این دو متغیر برابرند یا خیر
  • هر شرطی که درست بود آن کد اجرا میشود.

نکته: شروط از بالا به پایین بررسی میشوند و هرکدام درست بود همان لحظه اجرا میشود.

Else چیست؟

در این دستور پس از بررسی یک یا چند شرط در انتها اگر هیچ شرطی درست نبود با نوشتن دستور else  میتوان یک خط کد را اجرا کرد.

مانند نمونه کد زیر که در ادامه آنرا بررسی میکنیم.

x = 3
y = 5
if x > y:
    print("x از y بزرگتر است.")
elif x == y:
    print("x برابر با y است.")
else :
    print("x کوچکتر از y است.")

با بررسی دو متغیر x و y در دوشرط اول مورد قبول نبود در اینصورت متوجه شدیم که با نبودن دو شرط قبل بنابراین یک شرط میماند که آنرا با else نوشتیم.

نکته: به زبان ساده تر دستور else همان "در غیر اینصورت" است،در صورتی که هیچ شرطی درست نباشد این قطعه کد اجرا میشود.

 

تک خطی نوشتن

اگر دستور ما کوتاه باشد میتوان برای تمیزی و بهتر بودن کد آنرا در یک خط نوشت. مانند نمونه کد زیر:

x = 50
y = 20
if x > y : print("Hello World!")

یا میتوان با else هم تک خطی نوشت. مانند:

x = 3
y = 5
print("x") if x > y else print("y")

and چیست؟

برای بررسی دو شرط به طور همزمان از دستور and استفاده میکنیم که با این دستور اگر هردو شرطی که مدنظر داریم درست باشد کد اجرا میشود.

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

 

x = 20
y = 3
z =45
if x > y and z > x:
  print("هردو شرط درست هستند.")

or چیست؟

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

در بین دو شرط از or استفاده میکنیم.

نکته: در اصل به زبان ساده تر میگوید شرط اول یا شرط دوم درست باشد.

 

x = 20
y = 3
z =19
if x > y or z > x:
  print("حداقل یکی از شروط درست است.")

 

نکته: اگر هردو شرط درست باشد حتما اجرا میشود.

 

not چیست؟

این دستور هم برعکس هر شرطی را که نوشتیم اگر درست بود اجرا میکند.

در نمونه کد زیر میبینیم و نکات آنرا بررسی میکنیم.

x = 2
y = 5

if not x > y:
  print("Hello World!")

در نمونه کد بالا نوشته شده که اگر x از y بزرگتر نبود متن زیر چاپ شود.

if های تودرتو

آیا میتوانیم در یک دستور if دو یا چند شرط دیگر بگذاریم؟ بله!

میتوان از طریق if های تودرتو شروط را محدودتر کرد.

با نمونه کد زیر این مطلب را بهتر درک میکنید:

x = 50

if x > 10:
  print("بیشتر از 10,")
  if x > 35:
    print("از 35 هم بیشتر است.")
  else:
    print("از 35 بیشتر نیست.")

در نمونه کد بالا ابتدا x در شرط اول میماند اگر از 10 بزرگتر بود وارد بخش داخل کد میشود.

در اینجا دو شرط هست، اگر از 35 بزرگتر بود شرط اول اجرا میشود در غیر اینصورت شرط دوم.

نکته: در بخش دستورات بعد از درست بودن شرط هر قطعه کدی میتوان نوشت و لزوما چاپ متن نیست.

 

دستور pass چیست؟

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

x = 50
y = 20

if x > y:
    pass

خلاصه درس

  • دستور if یک شرط برای اجرای کد است.
  • بری نوشتن چند شرط پشت سرهم از elif استفاده میکنیم.
  • برای نوشتن آخرین شرط درصورت اجرا نشدن دیگر شروط از else استفاده میکنیم.
  • برای بررسی شروط از عملگرهای مقایسه ای استفاده میکنیم.
  • در صورت کوتاه بودن شروط میتوان از تک خط استفاده کرد.
  • دستور and بین دوشرط زمانی استفاده میشود که میخواهیم هردو شرط درست باشند.
  • دستور or بین دوشرط زمانی استفاده میشود که میخواهیم حداقل یکی از دو شرط درست باشد.
  • با دستور not برعکس شرط را اجرا میکنیم.
  • در صورت خالی بودن محتوای داخل شرط از دستور pass استفاده میکنیم.

تمرین

در تمرین زیر مشخص کنید در چه صورت شرط زیر اجرا میشود؟

x = 25
y = 20
if x y print("Hello World!")
مشاهده پاسخ
توسعه دهندگان
علیرضا چمنی