سطح مقدماتی (Beginner Level)
در برنامهنویسی، اغلب نیاز داریم که بر اساس وضعیتهای مختلف، تصمیمات متفاوتی بگیریم. دستورات شرطی به برنامه اجازه میدهند که «فکر کند» و مسیر اجرا را تغییر دهد. در پایتون، این کار با استفاده از کلمات کلیدی if، elif و else انجام میشود.
۱. ساختار پایه If
سادهترین نوع شرط، استفاده از if است. اگر شرط برقرار باشد (True باشد)، کد داخل بلوک اجرا میشود.
نکته مهم: در پایتون بر خلاف زبانهای دیگر که از {} استفاده میکنند، از تورفتگی (Indentation) برای مشخص کردن بلوک کد استفاده میشود.
# Static Syntax Example
if condition:
# Code to execute
مثال اول: بررسی سن کاربر
در این مثال، اگر سن کاربر بیشتر از ۱۸ باشد، پیامی چاپ میشود.
مثال دوم: شرط منفی
گاهی اوقات میخواهیم چک کنیم که آیا چیزی برابر نیست.
۲. استفاده از Else (در غیر این صورت)
اگر بخواهیم وقتی شرط if غلط بود، کار دیگری انجام دهیم، از else استفاده میکنیم.
مثال اول: زوج یا فرد بودن
مثال دوم: بررسی موجودی
۳. بررسی چند شرط با Elif
اگر بیش از دو حالت داشته باشیم (مثلاً نمره A، B یا C)، از elif (مخفف else if) استفاده میکنیم. پایتون شرطها را به ترتیب چک میکند و اولین شرطی که True باشد را اجرا کرده و از بقیه صرفنظر میکند.
مثال اول: تعیین رده سنی
مثال دوم: جهتهای جغرافیایی
سطح پیشرفته (Professional Level)
در این بخش به سراغ تکنیکهای حرفهایتری میرویم که کدهای پایتون شما را تمیزتر (Pythonic)، سریعتر و بهینهتر میکنند.
۱. عملگر شرطی تکخطی (Ternary Operator)
برای شرطهای سادهای که قرار است یک مقدار را برگردانند یا پر کنند، نیازی به نوشتن ۴ خط کد نیست. میتوان از ساختار تکخطی استفاده کرد.
Syntax: value_if_true if condition else value_if_false
مثال اول: انتساب متغیر
مثال دوم: استفاده درون تابع Print
۲. دستور Match-Case (نسخه ۳.۱۰ و بالاتر)
تا قبل از پایتون ۳.۱۰، چیزی شبیه به switch-case در زبانهای دیگر نداشتیم. اکنون ساختار قدرتمند match اضافه شده است که بسیار خواناتر از چندین elif پشت سر هم است.
مثال اول: تطبیق ساده
مثال دوم: تطبیق پیشرفته با ساختار داده
دستور Match میتواند الگوهای پیچیده (Pattern Matching) را نیز بررسی کند.
۳. مفهوم Truthy و Falsy
در پایتون، شرطها لزوماً نباید True یا False بولی (Boolean) باشند. بسیاری از اشیاء ذاتاً ارزش درستی یا نادرستی دارند. این موضوع به شما کمک میکند کدهای بسیار کوتاهتری بنویسید.
- Falsy (نادرست): عدد
0، لیست خالی[]، رشته خالی""، دیکشنری خالی{}وNone. - Truthy (درست): هر چیزی که خالی یا صفر نباشد.
مثال اول: بررسی لیست خالی (روش حرفهای)
به جای نوشتن if len(my_list) > 0، کافیست نام لیست را بنویسید.
مثال دوم: بررسی وجود مقدار (None Check)
۴. ارزیابی اتصال کوتاه (Short-Circuit Evaluation)
در شرطهای ترکیبی با and و or، پایتون به محض اینکه نتیجه قطعی شود، ارزیابی را متوقف میکند. این نکته برای جلوگیری از خطاهای زمان اجرا (Runtime Errors) حیاتی است.
مثال: جلوگیری از تقسیم بر صفر
اگر شرط اول (b != 0) غلط باشد، پایتون اصلاً شرط دوم را چک نمیکند، بنابراین خطای تقسیم بر صفر رخ نمیدهد.
# Snippet: مثالی که اگر ترتیب برعکس بود خطا میداد
# if (a / b) > 2 and b != 0: -> ZeroDivisionError
# pass