🧩 مثال سنگین و واقعی از موضوع مقایسه زنجیرهای در پایتون (
Chained Comparison)
x, y, z = 5, 10, 20
result = 1 < x < y <= z > x == 5
print(result)
🔍 گامبهگام بررسی
⤶ عبارت بالا در پایتون به این شکل تفسیر میشود:
(1 < x) and (x < y) and (y <= z) and (z > x) and (x == 5)
⤶ و همه مقایسهها از چپ به راست ارزیابی میشوند، با توقف فوری اگر یکی False شود (همان Short-circuiting)
1 < x → 1 < 5 → True
x < y → 5 < 10 → True
y <= z → 10 <= 20 → True
z > x → 20 > 5 → True
x == 5 → 5 == 5 → True
⤶ همهی شرطها برقرار هستن، پس:
result → True
⤶ اگر یکی False بود، بررسی ادامه نمیشد.
📌 نکات کلیدی
⤶ عملگرها قابل ترکیباند: استفاده از ==, <, <=, > و … در یک زنجیره کاملاً مجازه
⤶ متوقفسازی فوری: اگر یکی از مقایسهها False بشه، بررسیهای بعدی انجام نمیگیرند، مشابه and .
⤶ هر متغیر فقط یکبار بررسی میشود: برخلاف نوشتار جداگانه با and، اینجا مقدار x یا y تنها یکبار خوانده میشوند .
🖌 مثال دقیقتر
a, b, c = 3, 3, 5
print(a == b == c)
print(a != b != c)
⤶ و خروجی کد فوق:
a == b == c → (3 == 3) and (3 == 5) →
True and
False →
False
a != b != c → (3 != 3) and (3 != 5) →
False and
True →
False
⚠️ مراقب باش! زنجیرههای != غیرترانستیو هستن و ممکنه نتیجه غیرمنتظره بدن
⚠️ جای پرانتزها
اگه بخوای ترتیب مقایسهها رو کنترل کنی یا خوانایی بیشتری داشته باشی، از پرانتز استفاده کن تا رفتار دقیقتر بشه:
(1 < x < y) and (y <= z) and (x == 5)
✅ جمعبندی و توصیهها
👌 مقایسه زنجیرهای باعث میشه کد خوانا، شفاف و شبیه ریاضیات باشه.
⚠️ مراقب ظاهر فریبنده باش؛ برخی ترکیبها مثل != ممکنه گیجکنن.
🧠 برای خوانایی یا کنترل دقیقتر، از نگارش جداگانه یا پرانتز استفاده کن.
💯 @PythonForYou 🧑💻👩💻