بی آکادمی
آموزش HTML
آموزش CSS
فلکس باکس
جاوااسکریپت
آموزش SQL
آموزش MySQL
آموزش PHP
آموزش لاراول
دانلود و نصب لینوکس
داکر دسکتاپ
VS Code
گیت و گیت هاب
آموزش پایتون
هوش مصنوعی
TypeScript
فروشگاه اینترنتی
اپلیکیشن موبایل
آموزش اکسل

آموزش جامع دستورات شرطی if، elif و else در پایتون


🎯 اهداف یادگیری

  • درک مفهوم دستورات شرطی و کاربرد آنها
  • یادگیری ساختار if، elif و else
  • شناخت نحوه نوشتن شرایط پیچیده با عملگرهای منطقی
  • یادگیری شرط‌های تو در تو (Nested Conditions)
  • آشنایی با عبارت شرطی یک خطی (Ternary Operator)

📌 مقدمه‌ای بر دستورات شرطی

دستورات شرطی به برنامه اجازه می‌دهند بر اساس شرایط مختلف، تصمیم‌گیری کند و مسیرهای مختلفی را اجرا کند. این قابلیت پایه‌ای ترین مفهوم در برنامه‌نویسی است که به برنامه‌ها هوشمندی می‌بخشد.


📌 ساختار دستور if

ساده‌ترین شکل دستور شرطی، if است که در صورت true بودن شرط، بلوک کد مربوطه اجرا می‌شود:

python
# مثال ساده if
age = 18
if age >= 18:
print("شما بزرگسال هستید")
# اگر شرط false باشد، هیچ کاری انجام نمی‌شود
score = 50
if score > 60:
print("شما قبول شدید")
# این پیام چاپ نمی‌شود زیرا شرط false است

نکات مهم در استفاده از if:

  • دو نقطه (:): بعد از شرط حتماً باید دو نقطه قرار دهید
  • تورفتگی (Indentation): بلوک کد زیر if باید با فاصله (معمولاً 4 space) تو رفته باشد
  • شرط بولین: شرط باید به True یا False ارزیابی شود

📌 ساختار if-else

برای حالتی که می‌خواهیم هم برای شرط true و هم برای شرط false کد اجرا کنیم از if-else استفاده می‌کنیم:

python
# مثال if-else
age = 16
if age >= 18:
print("شما می‌توانید رای دهید")
else:
print("شما نمی‌توانید رای دهید")
# مثال دیگر با بررسی عدد زوج یا فرد
number = 7
if number % 2 == 0:
print("عدد زوج است")
else:
print("عدد فرد است")

📌 ساختار if-elif-else

برای حالتی که چندین شرط مختلف داریم از elif (مخفف else if) استفاده می‌کنیم:

python
# مثال if-elif-else برای نمره‌بندی
score = 85
if 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 = 25
has_license = True
if age >= 18 and has_license:
print("شما می‌توانید رانندگی کنید")
else:
print("شما نمی‌توانید رانندگی کنید")
# استفاده از or (حداقل یکی از شرط‌ها باید true باشد)
is_weekend = True
is_holiday = False
if is_weekend or is_holiday:
print("امروز تعطیل است")
else:
print("امروز روز کاری است")
# استفاده از not (معکوس کردن شرط)
is_raining = False
if not is_raining:
print("هوا آفتابی است، می‌توانیم بیرون برویم")
else:
print("باران می‌بارد، بهتر است در خانه بمانیم")

اولویت عملگرهای منطقی:

  • not: بالاترین اولویت
  • and: اولویت متوسط
  • or: پایین‌ترین اولویت
  • استفاده از پرانتز: برای خوانایی بهتر و تغییر اولویت از پرانتز استفاده کنید

📌 شرط‌های تو در تو (Nested Conditions)

می‌توانیم شرط‌ها را داخل یکدیگر قرار دهیم تا شرایط پیچیده‌تری ایجاد کنیم:

python
# مثال شرط تو در تو
age = 25
has_license = True
has_car = False
if 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_false
age = 20
# روش معمولی
if age >= 18:
status = "بزرگسال"
else:
status = "نوجوان"
# روش یک خطی (Ternary)
status = "بزرگسال" if age >= 18 else "نوجوان"
print(status)
# مثال دیگر
number = 7
result = "زوج" if number % 2 == 0 else "فرد"
print(result)

موارد استفاده عبارت شرطی یک خطی:

  • تخصیص مقدار بر اساس شرط: وقتی می‌خواهید بر اساس شرط به متغیر مقدار دهید
  • شرط‌های ساده: فقط برای شرط‌های بسیار ساده استفاده کنید
  • خوانایی: اگر شرط پیچیده است، از if-else معمولی استفاده کنید

📌 تمرین‌های عملی

حالا نوبت شماست! کدهای زیر را بررسی کنید و نتیجه را پیش‌بینی کنید:

python
# تمرین ۱
x = 10
y = 5
if x > y:
print("x بزرگتر از y است")
elif x < y:
print("x کوچکتر از y است")
else:
print("x برابر y است")
# تمرین ۲
temperature = 25
is_summer = True
if temperature > 30:
print("هوا بسیار گرم است")
elif temperature > 20 and is_summer:
print("هوا خوب و مطبوع است")
else:
print("هوا سرد است")