عبارات شرطی کوتاه و match-case
عملگر شرطی (ternary)، عبارت pass و ساختار match-case در پایتون ۳.۱۰+
عملگر شرطی (Ternary Operator)
برای نوشتن شرطهای ساده در یک خط:
# سینتکس:
# value_if_true if condition else value_if_false
age = 20
status = "بزرگسال" if age >= 18 else "کودک"
print(status) # بزرگسال
مثالهای بیشتر
# زوج یا فرد
num = 7
result = "زوج" if num % 2 == 0 else "فرد"
print(result) # فرد
# مثبت یا منفی
x = -5
sign = "مثبت" if x > 0 else "منفی" if x < 0 else "صفر"
print(sign) # منفی
# در تابع
def max_val(a, b):
return a if a > b else b
عبارت pass
pass یک عملیات خالی است — هیچ کاری نمیکند. برای جلوگیری از خطا وقتی بلوک خالی دارید:
if True:
pass # بعداً کد مینویسم
def my_function():
pass # تابع خالی
class MyClass:
pass # کلاس خالی
پایتون به بلوکهای خالی اجازه نمیدهد. اگر فعلاً کدی ندارید، از
pass استفاده کنید.عبارت ... (Ellipsis)
مثل pass اما معمولاً بهعنوان placeholder استفاده میشود:
def my_function():
... # معادل pass
match-case (پایتون ۳.۱۰+)
ساختار جدید پایتون، مشابه switch-case در زبانهای دیگر:
day = "شنبه"
match day:
case "شنبه":
print("اولین روز کاری")
case "جمعه":
print("روز تعطیل")
case _:
print("روز کاری")
چند مقدار با |
day = "یکشنبه"
match day:
case "شنبه" | "یکشنبه" | "دوشنبه" | "سهشنبه" | "چهارشنبه":
print("روز کاری")
case "پنجشنبه":
print("نیمه کاری")
case "جمعه":
print("تعطیل")
تطبیق با الگو (Pattern Matching)
# تطبیق نوع
def process(data):
match data:
case int():
return f"عدد صحیح: {data}"
case str():
return f"رشته: {data}"
case list():
return f"لیست با {len(data)} عنصر"
case _:
return "نامشخص"
print(process(42)) # عدد صحیح: 42
print(process("سلام")) # رشته: سلام
print(process([1, 2])) # لیست با 2 عنصر
تطبیق با مقدار (Binding)
# تطبیق ساختار
point = (3, 4)
match point:
case (0, 0):
print("مبدا")
case (0, y):
print(f"روی محور Y: {y}")
case (x, 0):
print(f"روی محور X: {x}")
case (x, y):
print(f"نقطه: ({x}, {y})")
عبارت شرطی در لیست (مقدماتی)
# اضافه کردن شرط در لیست
numbers = [1, 2, 3, 4, 5, 6]
even = [n for n in numbers if n % 2 == 0]
print(even) # [2, 4, 6]
مثال کاربردی: دستهبندی
def categorize_bmi(bmi):
return (
"کموزن" if bmi < 18.5
else "نرمال" if bmi < 25
else "اضافهوزن" if bmi < 30
else "چاق"
)
print(categorize_bmi(17)) # کموزن
print(categorize_bmi(22)) # نرمال
print(categorize_bmi(28)) # اضافهوزن
print(categorize_bmi(35)) # چاق
خلاصه
# اضافه کردن شرط در لیست
numbers = [1, 2, 3, 4, 5, 6]
even = [n for n in numbers if n % 2 == 0]
print(even) # [2, 4, 6]def categorize_bmi(bmi):
return (
"کموزن" if bmi < 18.5
else "نرمال" if bmi < 25
else "اضافهوزن" if bmi < 30
else "چاق"
)
print(categorize_bmi(17)) # کموزن
print(categorize_bmi(22)) # نرمال
print(categorize_bmi(28)) # اضافهوزن
print(categorize_bmi(35)) # چاق| ساختار | توضیح |
|---|---|
| Ternary | x if cond else y |
pass | بلوک خالی |
match-case | ساختار switch (پایتون ۳.۱۰+) |
_ | حالت پیشفرض در match |
این مبحث بخشی از دوره آموزش کامل پایتون است.