دستورات شرطی در پایتون، برای اجرای کد بر اساس یک یا چند شرط منطقی استفاده میشوند. این دستورات شامل if ،elif و else هستند که امکان بررسی چندین حالت را فراهم میکنند. شرطها معمولاً با عملگرهای مقایسهای (==، !=، <، >) و منطقی (and، o، not) ترکیب میشوند تا تصمیمگیریهای پیچیدهتر را ممکن سازند. اگر شرط داخل if مقدار True داشته باشد، بلاک مربوطه اجرا میشود، و اگر برقرار نباشد، برنامه به سراغ elif (در صورت وجود) یا else میرود.
مقدمه
ساختار شرطی به برنامهنویسان کمک میکند تا جریان اجرای برنامه را بر اساس دادهها و شرایط مختلف کنترل کنند. از این ویژگی میتوان در بخشهای مختلف برنامهنویسی، مانند پردازش ورودی کاربر، اعتبارسنجی دادهها، و اجرای منطقهای تصمیمگیری، استفاده کرد. علاوه بر این، شرطها میتوانند تو در تو (Nested) باشند، به این معنی که میتوان چندین if را داخل یکدیگر قرار داد تا شرایط پیچیدهتر را بررسی کرد. درک و تسلط بر دستورات شرطی در پایتون برای هر برنامهنویسی که قصد دارد کدی کارآمد و قدرتمند بنویسد، ضروری است. در این مقاله، به جزئیات دستورات شرطی در پایتون میپردازیم و اصول اولیه، تکنیکهای پیشرفته و بهترین روشها را بررسی میکنیم.
دستورات شرطی در پایتون چیست؟
دستورات شرطی در پایتون دستوراتی هستند که انتخابی برای جریان کنترل بر اساس یک شرط را فراهم میکنند. این تعریف بدین معناست که جریان کنترل برنامه پایتون بر اساس نتیجه شرط تصمیمگیری خواهد شد. حالا بیایید ببینیم که چگونه دستورات شرطی در پایتون پیادهسازی میشوند.
انواع دستورات شرطی در پایتون
۵ نوع دستور شرطی در پایتون داریم که در ادامه به تعریف آن میپردازیم.
۱- دستور شرطی If در پایتون
اگر بخواهیم بلوک کد سادهای زمانی اجرا شود که شرط برقرار باشد، از عبارت if استفاده میکنیم. اگر شرط ذکر شده برقرار باشد، بلوک کد اجرا میشود وگرنه اجرا نخواهد شد.
ساختار دستور if به این صورت است که ابتدا شرط بررسی میشود و در صورت درست بودن، کد داخل آن اجرا میشود.
if condition: # Statements to execute if # condition is true
# if statement example if 10 > 5: print("10 greater than 5") print("Program ended")
خروجی:
۱۰ greater than 5 Program ended
۲- دستور شرطی If else در پایتون
در دستور شرطی If else، بلوک کد اضافی به صورت یک دستور else اضافه میشود که زمانی که شرط if نادرست باشد، اجرا میشود.
ترکیب دستور If-Else در پایتون به این صورت است که ابتدا شرط بررسی میشود و اگر درست باشد، کد داخل if اجرا میشود و در غیر این صورت، کد داخل else اجرا خواهد شد.
if (condition): # Executes this block if # condition is true else: # Executes this block if # condition is false
# if..else statement example x = 3 if x == 4: print("Yes") else: print("No")
خروجی:
No
توجه: همانطور که می دانیم دستورات داخل بلوک در پایتون بر خلاف سایر زبانها در { } نوشته نمیشود و در سینتکس پایتون از تورفتگی برای تعیین دامنه یک بلوک استفاده میشود.
۳- دستورات شرطی تو در تو if..else در پایتون
دستور شرطی تو در تو if..else به این معناست که یک دستور if-else داخل یک دستور if دیگر قرار میگیرد. به عبارت سادهتر، ابتدا یک دستور if خارجی داریم و داخل آن یک دستور if-else دیگر قرار دارد که به آن دستور شرطی تو در تو گفته میشود.
ما میتوانیم یک دستور if یا else if را داخل یک دستور if یا else if دیگر قرار دهیم.
# if..else chain statement letter = "A" if letter == "B": print("letter is B") else: if letter == "C": print("letter is C") else: if letter == "A": print("letter is A") else: print("letter isn't A, B and C")
خروجی:
۴- دستورات شرطی If-elif-else در پایتون
دستورات if از بالا به پایین اجرا میشوند. به محض اینکه یکی از شرایط مربوط به if درست باشد، دستور مرتبط با آن if اجرا میشود و بقیهی شرایط نادیده گرفته میشوند.
اگر هیچکدام از شرایط درست نباشد، دستور آخر «else» اجرا میشود.
# if-elif statement example letter = "A" if letter == "B": print("letter is B") elif letter == "C": print("letter is C") elif letter == "A": print("letter is A") else: print("letter isn't A, B or C")
خروجی:
letter is A
۵- دستورات شرطی ترتیبی (Ternary Expression) در پایتون
دستور شرطی ترتیبی در پایتون تعیین میکند که آیا یک شرط درست است یا نادرست، سپس مقدار مناسب را بر اساس نتیجه باز میگرداند. این نوع دستور زمانی مفید است که بخواهیم یک مقدار را بر اساس یک شرط ساده به یک متغیر اختصاص دهیم و کد را کوتاه و مختصر نگه داریم — همه اینها در یک خط کد.
ساختار دستور شرطی ترتیبی به این صورت است که ابتدا شرط بررسی میشود و بر اساس نتیجه آن، یکی از دو مقدار به متغیر اختصاص داده میشود.
Syntax: [on_true] if [expression] else [on_false] expression: conditional_expression | lambda_expr
# Python program to demonstrate nested ternary operator a, b = 10, 20 print("Both a and b are equal" if a == b else "a is greater than b" if a > b else "b is greater than a")
خروجی:
b is greater than a
بهترین روشها برای استفاده از دستورات شرطی در پایتون
- شرایط را ساده و گویا نگه دارید تا خوانایی بهتر باشد.
- از بلوکهای شرطی تو در تو پیچیده خودداری کنید؛ منطق پیچیده را به توابع کوچکتر و قابل مدیریت تقسیم کنید.
- برای شرایط پیچیده کامنت بگذارید تا هدف آنها روشن شود.
- برای اختصاص مقادیر شرطی ساده، از عملگر ترتیبی (ternary operator) استفاده کنید.
- استفاده از ارزیابی کوتاهمدت (short-circuit evaluation) برای کارایی بیشتر را در شرایط پیچیده استفاده کنید.
- از توابع ()any و ()all همراه با شرایط اعمالشده به مجموعهها را میتوان استفاده کرد.
- دستورات شرطی در درک لیستها (list comprehensions) و عبارات تولیدکنندهها (generator expressions) استفده میشود.
نتیجه گیری
دستورات شرطی در پایتون ابزارهای ضروری برای کنترل جریان برنامهنویسی هستند. با استفاده از عبارات if، elif و else، میتوان تصمیمات مختلف را بر اساس شرایط مختلف اتخاذ کرد و بدین ترتیب رفتار برنامه را متناسب با ورودیها یا وضعیتها تغییر داد. این قابلیتها به برنامهنویسان این امکان را میدهند که برنامههای دینامیک و انعطافپذیر بسازند که به شرایط مختلف واکنش نشان دهند. همچنین استفاده از عبارات شرطی تو در تو و عملگرهای ترتیبی موجب سادهسازی و بهینهسازی کد میشود.