पायथन का टर्नरी ऑपरेटर (सशर्त अभिव्यक्ति) एक लाइन में शर्त के आधार पर मान चुनने की अनुमति देता है।
सिंटैक्स
[on_true] if [condition] else [on_false]
बुनियादी उदाहरण
x, y = 5, 6
# if-else स्टेटमेंट
if x > y:
print("x")
else:
print("y") # y
# टर्नरी ऑपरेटर
print("x" if x > y else "y") # y
फ़ंक्शन में उपयोग
def find_max(a, b):
return a if a > b else b
print(find_max(5, 6)) # 6
वैकल्पिक कार्यान्वयन
टपल इंडेक्सिंग
a, b = 5, 6
print((b, a)[a > b]) # 6 (True=1, False=0)
# लेबल के साथ स्पष्टता के लिए
print((f"b:{b}", f"a:{a}")[a > b]) # 'b:6'
डिक्शनरी
print({False: f"b:{b}", True: f"a:{a}"}[a > b]) # 'a:5' (यहां a>b False है)
# सही: a=10, b=5
a, b = 10, 5
print({True: f"a:{a}", False: f"b:{b}"}[a > b]) # 'a:10'
लैम्ब्डा
print((lambda: f"a:{a}", lambda: f"b:{b}")[a > b]()) # लेज़ी इवैल्यूएशन
नेस्टेड टर्नरी (चेनिंग)
x = 3
result = ("Less than zero" if x < 0
else "Between 0 and 5" if 0 <= x <= 5
else "Greater than five")
print(result) # Between 0 and 5
सावधानियां
- अत्यधिक नेस्टिंग पठनीयता कम करती है - जटिल लॉजिक के लिए if-else बेहतर।
- टर्नरी एक एक्सप्रेशन है (मान लौटाता है), स्टेटमेंट नहीं।
- पायथन में
condition ? val1 : val2(C-स्टाइल) नहीं है।
सर्वोत्तम अभ्यास
- सरल शर्तों के लिए टर्नरी उपयोग करें।
- पठनीयता के लिए पैरेंथेसिस जोड़ें:
(val1 if cond else val2)। - साइड इफेक्ट्स वाले एक्सप्रेशन्स से बचें।