شرط if...else در پایتون

ساختار شرطی if، elif، else، شرط‌های تو در تو و عملگرهای شرطی در پایتون

ساختار شرطی چیست؟

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

دستور if ساده

اگر شرط درست باشد، کد اجرا می‌شود:

age = 20

if age >= 18:
    print("شما بزرگ‌سال هستید")

دستور if...else

اگر شرط درست باشد یک کار، وگرنه کار دیگر:

age = 15

if age >= 18:
    print("شما بزرگ‌سال هستید")
else:
    print("شما کودک هستید")

دستور elif (در غیر این صورت اگر)

برای بررسی چند شرط پشت سر هم:

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)")
پایتون شرط‌ها را از بالا به پایین بررسی می‌کند و به‌محض پیدا کردن شرط درست، بقیه را بررسی نمی‌کند.

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

age = 25
has_license = True

if age >= 18:
    if has_license:
        print("می‌توانید رانندگی کنید")
    else:
        print("ابتدا گواهینامه بگیرید")
else:
    print("شما زیر سن قانونی هستید")

شرط‌های ترکیبی

با and، or و not می‌توانید شرط‌ها را ترکیب کنید:

age = 25
has_id = True

# and — هر دو باید درست باشند
if age >= 18 and has_id:
    print("ورود مجاز است")

# or — یکی کافی است
is_vip = False
is_staff = True
if is_vip or is_staff:
    print("دسترسی ویژه")

# not
is_raining = False
if not is_raining:
    print("هوا صاف است")

شرط روی مجموعه‌ها

# بررسی عضویت
fruits = ["سیب", "موز"]
if "موز" in fruits:
    print("موز موجود است")

# بررسی خالی بودن
my_list = []
if not my_list:  # یا if len(my_list) == 0
    print("لیست خالی است")

شرط در یک خط (Ternary)

age = 20
status = "بزرگ‌سال" if age >= 18 else "کودک"
print(status)  # بزرگ‌سال

pass در شرط

اگر هنوز کد بلوک if را ننوشته‌اید، از pass استفاده کنید تا خطا ندهد:

if True:
    pass  # بعداً کد می‌نویسم

مقادیر Truthy و Falsy

در پایتون، این مقادیر Falsy (در شرط نادرست) هستند:

بقیه مقادیر Truthy (در شرط درست) هستند.

# استفاده از Truthy/Falsy
name = ""
if name:
    print(f"سلام {name}")
else:
    print("نام خالی است")

match-case (پایتون ۳.۱۰+)

ساختار جدید مشابه switch-case:

day = "شنبه"

match day:
    case "شنبه" | "چهارشنبه":
        print="روز کاری اول"
    case "جمعه":
        print("روز تعطیل")
    case _:
        print("روز کاری")

مثال کاربردی: ماشین ATM

balance = 500000
withdraw = 200000

if withdraw > balance:
    print("موجودی کافی نیست")
elif withdraw <= 0:
    print("مبلغ نامعتبر")
else:
    balance -= withdraw
    print(f"برداشت موفق. موجودی: {balance}")

خلاصه

ساختارتوضیح
ifاگر شرط درست باشد
elifدر غیر این صورت اگر
elseدر غیر این صورت
andو (هر دو)
orیا (یکی)
notنفی

این مبحث بخشی از دوره آموزش کامل پایتون است.

ابزارهای مرتبط