آموزش جامع دستورات شرطی if، elif و else در پایتون
🎯 اهداف یادگیری
- درک مفهوم دستورات شرطی و کاربرد آنها
- یادگیری ساختار if، elif و else
- شناخت نحوه نوشتن شرایط پیچیده با عملگرهای منطقی
- یادگیری شرطهای تو در تو (Nested Conditions)
- آشنایی با عبارت شرطی یک خطی (Ternary Operator)
📌 مقدمهای بر دستورات شرطی
دستورات شرطی به برنامه اجازه میدهند بر اساس شرایط مختلف، تصمیمگیری کند و مسیرهای مختلفی را اجرا کند. این قابلیت پایهای ترین مفهوم در برنامهنویسی است که به برنامهها هوشمندی میبخشد.
📌 ساختار دستور if
سادهترین شکل دستور شرطی، if است که در صورت true بودن شرط، بلوک کد مربوطه اجرا میشود:
python
# مثال ساده ifage = 18if age >= 18: print("شما بزرگسال هستید")# اگر شرط false باشد، هیچ کاری انجام نمیشودscore = 50if score > 60: print("شما قبول شدید")# این پیام چاپ نمیشود زیرا شرط false است
نکات مهم در استفاده از if:
- دو نقطه (:): بعد از شرط حتماً باید دو نقطه قرار دهید
- تورفتگی (Indentation): بلوک کد زیر if باید با فاصله (معمولاً 4 space) تو رفته باشد
- شرط بولین: شرط باید به True یا False ارزیابی شود
📌 ساختار if-else
برای حالتی که میخواهیم هم برای شرط true و هم برای شرط false کد اجرا کنیم از if-else استفاده میکنیم:
python
# مثال if-elseage = 16if age >= 18: print("شما میتوانید رای دهید")else: print("شما نمیتوانید رای دهید")# مثال دیگر با بررسی عدد زوج یا فردnumber = 7if number % 2 == 0: print("عدد زوج است")else: print("عدد فرد است")
📌 ساختار if-elif-else
برای حالتی که چندین شرط مختلف داریم از elif (مخفف else if) استفاده میکنیم:
python
# مثال if-elif-else برای نمرهبندیscore = 85if score >= 90: print("نمره: A")elif score >= 80: print("نمره: B")elif score >= 70: print("نمره: C")elif score >= 60: print("نمره: D")else: print("نمره: F (مردود)")# فقط اولین شرطی که true باشد اجرا میشود# حتی اگر چندین شرط true باشند
نکات مهم در استفاده از elif:
- ترتیب شرطها: شرطها به ترتیب بررسی میشوند
- توقف در اولین شرط true: فقط اولین شرط true اجرا میشود و بقیه نادیده گرفته میشوند
- اختیاری بودن else: بخش else اختیاری است و میتوان آن را حذف کرد
📌 شرایط پیچیده با عملگرهای منطقی
میتوانیم با استفاده از عملگرهای and، or و not شرایط پیچیدهتری ایجاد کنیم:
python
# استفاده از and (هر دو شرط باید true باشند)age = 25has_license = Trueif age >= 18 and has_license: print("شما میتوانید رانندگی کنید")else: print("شما نمیتوانید رانندگی کنید")# استفاده از or (حداقل یکی از شرطها باید true باشد)is_weekend = Trueis_holiday = Falseif is_weekend or is_holiday: print("امروز تعطیل است")else: print("امروز روز کاری است")# استفاده از not (معکوس کردن شرط)is_raining = Falseif not is_raining: print("هوا آفتابی است، میتوانیم بیرون برویم")else: print("باران میبارد، بهتر است در خانه بمانیم")
اولویت عملگرهای منطقی:
- not: بالاترین اولویت
- and: اولویت متوسط
- or: پایینترین اولویت
- استفاده از پرانتز: برای خوانایی بهتر و تغییر اولویت از پرانتز استفاده کنید
📌 شرطهای تو در تو (Nested Conditions)
میتوانیم شرطها را داخل یکدیگر قرار دهیم تا شرایط پیچیدهتری ایجاد کنیم:
python
# مثال شرط تو در توage = 25has_license = Truehas_car = Falseif age >= 18: if has_license: if has_car: print("شما میتوانید با ماشین خود رانندگی کنید") else: print("شما گواهینامه دارید ولی ماشین ندارید") else: print("شما باید ابتدا گواهینامه بگیرید")else: print("شما به سن قانونی نرسیدهاید")# میتوان همین کد را با عملگرهای منطقی سادهتر نوشت:if age >= 18 and has_license and has_car: print("شما میتوانید با ماشین خود رانندگی کنید")elif age >= 18 and has_license: print("شما گواهینامه دارید ولی ماشین ندارید")elif age >= 18: print("شما باید ابتدا گواهینامه بگیرید")else: print("شما به سن قانونی نرسیدهاید")
نکات شرطهای تو در تو:
- خوانایی: شرطهای تو در تو میتوانند خوانایی کد را کاهش دهند
- جایگزینی: در بسیاری موارد میتوان با عملگرهای منطقی شرطهای تو در تو را سادهتر کرد
- تورفتگی: به تورفتگی هر سطح شرط دقت کنید
📌 عبارت شرطی یک خطی (Ternary Operator)
برای شرطهای ساده میتوان از عبارت شرطی یک خطی استفاده کرد:
python
# ساختار: مقدار_if_true if شرط else مقدار_if_falseage = 20# روش معمولیif age >= 18: status = "بزرگسال"else: status = "نوجوان"# روش یک خطی (Ternary)status = "بزرگسال" if age >= 18 else "نوجوان"print(status)# مثال دیگرnumber = 7result = "زوج" if number % 2 == 0 else "فرد"print(result)
موارد استفاده عبارت شرطی یک خطی:
- تخصیص مقدار بر اساس شرط: وقتی میخواهید بر اساس شرط به متغیر مقدار دهید
- شرطهای ساده: فقط برای شرطهای بسیار ساده استفاده کنید
- خوانایی: اگر شرط پیچیده است، از if-else معمولی استفاده کنید
📌 تمرینهای عملی
حالا نوبت شماست! کدهای زیر را بررسی کنید و نتیجه را پیشبینی کنید:
python
# تمرین ۱x = 10y = 5if x > y: print("x بزرگتر از y است")elif x < y: print("x کوچکتر از y است")else: print("x برابر y است")# تمرین ۲temperature = 25is_summer = Trueif temperature > 30: print("هوا بسیار گرم است")elif temperature > 20 and is_summer: print("هوا خوب و مطبوع است")else: print("هوا سرد است")