در زندگی واقعی شرایطی پیش میآید که ما نیاز به تصمیمگیری داریم و بر این تصمیمها کارهای خود را انجام میدهیم. شرایط مشابهی در برنامه نویسی نیز وجود دارد؛ گاهی لازم است تصمیمگیری کنیم و بر اساس این تصمیمها کد بعدی را اجرا کنیم. در این قسمت از دوره آموزشی پایتون فنولوژی، در مورد if else در پایتون صحبت میکنیم. با ما همراه باشید.
دستورات شرطی با if else در پایتون
دستورات شرطی در پایتون و دیگر زبانهای برنامه نویسی، جهت جریان اجرای کد را تعیین میکنند. این دستورها در پایتون عبارتند از:
- If statement
- If…else statements
- nested if statements
- If-elif ladder
- Short Hand if statement
- Short Hand if-else statement
در این بخش از آموزش پایتون مقدماتی، این دستورات شرطی را معرفی میکنیم.
عملگرهای شرطی در پایتون
پایتون از عملگرهای مقایسهای و عملگرهای منطقی معمول در ریاضیات پشتیبانی میکند:
- تساوی: a == b
- عدم تساوی: a != b
- کوچکتری: a < b
- کوچکتر و مساوی: a <= b
- بزرگتری: a > b
- بزرگتر و مساوی: a >= b
- عملیات AND منطقی: x < 5 and x < 10
- عملیات OR منطقی: x < 5 or x < 4
- عملیات NOT منطقی: not(x < 5)
خروجی این عبارات به صورت دادههای بولی (True و False) است. از این عبارات شرطی میتوان در جاهای مختلف، به خصوص در دستورات if و حلقهها استفاده نمود.
دستور if در پایتون
دستور if با استفاده از دستور if به حالت زیر نوشته میشود:
مثال: روش استفاده از دستور if
1 2 3 4 |
a = 33 b = 200 if b > a: print("b is greater than a") |
در این مثال، با استفاده از شرط if بررسی میکنیم که آیا b از a بزرگتر است یا خیر؛ در صورتی که این شرط صحیح باشد، دستورات درون شرط if، یعنی دستور زیر اجرا میشود:
print("b is greater than a")
از آنجایی که b بزرگتر از a است، در خروجی داریم:
1 |
b is greater than a |
تورفتگی خطوط دستورات if else در پایتون
همانطور که قبلا در قواعد کدنویسی پایتون گفته شد، پایتون برای تعریف دامنه در کد، به تورفتگی (فضای خالی از ابتدای خط | Indentation) متکی است. سایر زبانهای برنامه نویسی اغلب از براکت {} برای این منظور استفاده میکنند.
مثال: شرط if، بدون تورفتگی (که با خطا مواجه میشود!):
1 2 3 4 |
a = 33 b = 200 if b > a: print("b is greater than a") # you will get an error |
دستور elif در پایتون
در پایتون اگر بخواهیم به برنامه بفهمانیم «اگر شروط قبلی درست نبود، سپس این شرط را بررسی کن»، از دستور elif استفاده میکنیم.
مثال:
1 2 3 4 5 6 |
a = 33 b = 33 if b > a: print("b is greater than a") elif a == b: print("a and b are equal") |
در این مثال a برابر با b است، بنابراین شرط اول درست نیست؛ اما شرط elif درست است. بنابراین ما خروجی را به صورت زیر مشاهده میکنیم:
1 |
a and b are equal |
دستور else در پایتون
کلیدواژهی else هر چیزی را که در شرایط قبلی قرار نگیرد، در else اجرا میکند و در واقع مانند متمم ریاضی عمل میکند.
مثال ۱:
1 2 3 4 5 6 |
a = 200 b = 33 if b > a: print("b is greater than a") else: print("b is not greater than a") |
خروجی:
1 |
b is greater than a |
همچنین میتوانید else را به همراه elif استفاده کنید.
مثال ۲:
1 2 3 4 5 6 7 8 |
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 میرسیم و خروجی به صورت زیر نمایش داده میشود.
1 |
a is greater than b |
دستور if کوتاه شده در پایتون | Short Hand if
اگر تنها یک دستور برای اجرا کردن در if دارید، میتوانید آن را به همراه if در همان خط قرار دهید.
مثال:
1 |
if a > b: print("a is greater than b") |
خروجی:
1 |
a is greater than b |
همچنین میتوانید آن را به همراه else به کار ببرید:
مثال :
1 2 3 |
a = 2 b = 330 print("A") if a > b else print("B") |
خروجی:
1 |
B |
از این تکنیک به عنوان عملگرهای سهتایی (Ternary Operators) یا عبارات شرطی یاد میکنند.
همچنین میتوانید تعداد بیشتری if و else را در یک خط قرار دهید:
مثال:
1 2 3 |
a = 330 b = 330 print("A") if a > b else print("=") if a == b else print("B") |
خروجی:
1 |
= |
Nested If در پایتون
میتوانید در داخل یک عبارت if else در پایتون، عبارات if else دیگری استفاده کنید که به آن عبارات شرطی تو در تو یا nested if میگویند. به مثال زیر توجه کنید.
مثال: اگر x بیشتر از ۱۰ باشد بررسی کن که آیا بیشتر از ۲۰ نیز هست یا خیر.
1 2 3 4 5 6 7 8 |
x = 41 if x > 10: print("Above ten,") if x > 20: print("and also above 20!") else: print("but not above 20.") |
خروجی:
1 2 |
Above ten, and also above 20! |
عبارت pass در پایتون
عبارات if در پایتون نمیتوانند کد شرط نداشته باشند؛ اما اگر نیاز داشتید به هر دلیلی کد شرط را خالی بگذارید، میتوانید از دستور pass استفاده کنید.
مثال:
1 2 3 4 5 |
a = 33 b = 200 if b > a: pass |
عملگرهای منطقی در دستورات شرطی پایتون
همانطور که در ابتدای مقاله اشاره کردیم، عملگرهای منطقی را نیز میتوان در دستورات شرطی پایتون به کار برد.
And | «و» منطقی
از این دستور برای ترکیب کردن (اشتراک) چندین شرط مختلف استفاده میشود. به مثال زیر توجه کنید:
مثال: بررسی کن که a بزرگتر از b باشد «و» c بزرگتر از a باشد.
1 2 3 4 5 |
a = 200 b = 33 c = 500 if a > b and c > a: print("Both conditions are True") |
خروجی:
1 |
Both conditions are True |
Or | «یا» منطقی
از این دستور برای ترکیب کردن (اجتماع) چندین شرط مختلف استفاده میشود. به مثال زیر توجه کنید:
مثال: بررسی کن که a بزرگتر از b باشد «یا» a بزرگتر از c باشد.
1 2 3 4 5 |
a = 200 b = 33 c = 500 if a > b or a > c: print("At least one of the conditions is True") |
1 |
At least one of the conditions is True |