شرط 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 (در شرط نادرست) هستند:
False0و0.0""(رشته خالی)[](لیست خالی){}(دیکشنری خالی)None
بقیه مقادیر 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 | نفی |
این مبحث بخشی از دوره آموزش کامل پایتون است.