ساختار شرطی if در پایتون
ساختار شرطی if در پایتون
ساختار شرطی if در پایتون
در مسیر یادگیری برنامهنویسی، تا این لحظه یاد گرفتیم که چطور دادهها را در متغیرها ذخیره کنیم و با عملگرها محاسبات گوناگون انجام دهیم. اما کدهایی که تا الان نوشتیم یک ویژگی مشترک داشتند: از خط اول شروع میشدند و خط به خط تا انتها بدون هیچ انتخابی اجرا میشدند.
در دنیای واقعی، رفتار ما بر اساس شرایط تغییر میکند؛ مثلاً «اگر هوا بارانی باشد، چتر برمیداریم». در برنامهنویسی نیز دقیقاً به همین قابلیت نیاز داریم. این فرآیند را در علوم کامپیوتر کنترل جریان داده (Control Flow) یا تصمیمگیری (Decision Making) مینامند. در پایتون، این تصمیمگیریها به کمک ساختارهای شرطی if، elif و else پیادهسازی میشوند.

۱. ساختار شرطی تکحالته (if)
سادهترین شکل تصمیمگیری زمانی است که بخواهید در صورت برقرار بودن یک شرط خاص، دستوری اجرا شود و در صورت برقرار نبودن آن، پایتون بدون انجام هیچ کاری از آن عبور کند. در پایتون بعد از کلمه کلیدی if، شرط مورد نظر را مینویسیم و در انتهای خط علامت دونقطه (:) قرار میدهیم. دستورات وابسته به شرط، باید با تورفتگی (Indentation) نوشته شوند؛ یعنی زدن کلید Tab یا ۴ فاصله (Space).
صورت مسئله: سن کاربر را دریافت کرده و در صورتی که سن ۱۸ سال یا بیشتر باشد، پیام دسترسی مجاز را چاپ کنید.
age = 20
if age >= 18:
print("دسترسی مجاز است.")
۲. ساختار شرطی دوحالته (if-elif)
گاهی اوقات میخواهیم در صورتی که شرط اول برقرار نبود، یک شرط دوم را بلافاصله بررسی کنیم. در چنین شرایطی از کلمه کلیدی elif (مخفف Else If) استفاده میکنیم. پایتون ابتدا شرط if را میسنجد؛ اگر نادرست بود، به سراغ elif میرود. اگر هیچکدام برقرار نباشند، کدی اجرا نمیشود.
صورت مسئله: وضعیت چراغ راهنمایی را بررسی کنید؛ اگر سبز بود پیام حرکت و اگر زرد بود پیام احتیاط را نمایش دهید.
traffic_light = "yellow"
if traffic_light == "green":
print("حرکت کنید.")
elif traffic_light == "yellow":
print("احتیاط کنید و سرعت را کاهش دهید.")
۳. ساختار شرطی چندحالته کامل (if-elif-else)
در کاربردهای واقعی، معمولاً زنجیرهای از حالتها داریم و در نهایت میخواهیم اگر هیچکدام از حالتهای بالا اتفاق نیفتاد، یک عمل پیشفرض اجرا شود. بخش else دقیقاً همین نقش را دارد؛ یعنی «در غیر این صورت». توجه داشته باشید که else هیچ شرطی جلوی خود نمیپذیرد و تنها با علامت دونقطه بسته میشود.
صورت مسئله: نمره یک دانشجو (عددی بین ۰ تا ۲۰) را دریافت کرده و سطح تحصیلی او را ارزیابی کنید:
- نمره ۱۷ و بالاتر: سطح عالی
- نمره ۱۰ تا کمتر از ۱۷: قبولی عادی
- کمتر از ۱۰: مردود
# نمره ارزیابیشده دانشجو
score = 14
# سیستم سطحبندی نمرات
if score >= 17:
print("نتیجه ارزیابی: سطح عالی")
elif score >= 10:
print("نتیجه ارزیابی: قبولی عادی")
else:
print("نتیجه ارزیابی: متأسفانه نمره قبولی کسب نشده و مردود است.")
۴. تجمیع شروط با عملگر منطقی and
گاهی برای رخ دادن یک رویداد، لازم است چند شرط به طور همزمان درست باشند. در این حالت از عملگر منطقی and استفاده میکنیم. کل عبارت تنها زمانی مقدار True برمیگرداند که تکتک شروط برقرار باشند؛ در غیر این صورت کل شرط باطل است.
- صورت مسئله: دمای هوای یک اتاق سرور را بررسی کنید؛ دمای مطلوب و استاندارد بین ۲۰ تا ۲۵ درجه سانتیگراد است. اگر دما در این بازه بود پیام سلامت محیط را صادر کنید.
temperature = 22
if temperature >= 20 and temperature <= 25:
print("دمای محیط در محدوده ایدهآل است.")
۵. تجمیع شروط با عملگر منطقی or
در نقطه مقابل، مواقعی پیش میآید که برقرار بودن حداقل یکی از شرطها برای ما کفایت میکند. در این وضعیت عملگر or وارد میدان میشود. اگر فقط یکی از شروط اطراف or درست باشد، بدنه شرط اجرا خواهد شد.
- صورت مسئله: بررسی کنید آیا روز جاری جزو روزهای پایانی هفته (پنجشنبه یا جمعه) است تا پیام تعطیلات نمایش داده شود.
day = "friday"
if day == "thursday" or day == "friday":
print("امروز تعطیل است.")
۶. بررسی شرط منفی با عملگر منطقی not
عملگر منطقی not نقش معکوسکننده را دارد؛ یعنی اگر نتیجه یک عبارت شرطی True باشد، آن را تبدیل به False میکند و برعکس. این عملگر زمانی کاربرد دارد که بخواهیم کدمان شبیه به زبان محاورهای و روان خوانده شود.
- صورت مسئله: متغیری وضعیت لاگین بودن کاربر را نگهداری میکند. اگر کاربر وارد حساب نشده بود، پیام هدایت به صفحه ورود را چاپ کنید.
# وضعیت لاگین کاربر در سایت
is_logged_in = False
# بررسی عدم ورود کاربر به سامانه با استفاده از not
if not is_logged_in:
print("شما هنوز وارد حساب کاربری خود نشدهاید؛ لطفاً ابتدا لاگین کنید.")
نتیجه گیری
ساختارهای شرطی ابزار بنیادین تصمیمگیری در تمام زبانهای برنامهنویسی هستند. پایتون با بهرهگیری از کلمات کلیدی سرراست مانند if، elif و else در کنار عملگرهای منطقی and، or و not، خواناترین ساختار را برای پیادهسازی منطق نرمافزار در اختیارتان میگذارد. تسلط بر نحوه شاخهبندی شروط و رعایت تورفتگیها (Indentation)، پایهی محکمی است تا در گامهای بعدی بتوانید الگوریتمهای پیچیدهتر، حلقههای تکرار و اعتبارسنجی دادهها را با اطمینان بنویسید.
