आज सुबह में, मैं अपने आप को कुछ ऐसा लिख पाते हैं:की श्रंखला के बारे में क्या नियम हैं "==" और अजगर
if (a == b == c):
# do something
और आश्चर्य है कि यह मुझे अपेक्षित परिणाम दिया।
मैंने सोचा था कि के रूप में यह कैसा व्यवहार करेंगे:
if ((a == b) == c):
# do something
लेकिन यह स्पष्ट रूप से नहीं किया था। ऐसा लगता है कि पाइथन दूसरे बयान को दूसरे से अलग तरीके से इलाज कर रहा है, जो अच्छा है लेकिन मुझे इसके बारे में कोई दस्तावेज़ीकरण या स्पष्टीकरण नहीं मिला।
मैं परीक्षण किया है और यह मिल गया:
In [1]: 2 == 2 == 2
Out[1]: True
In [2]: (2 == 2) == 2
Out[2]: False
कोई ध्यान मुझे समझाने के लिए चाहेंगे क्या इस तरह के ==
(या !=
) की "श्रृंखलन" के बारे में नियम हैं?
बहुत बहुत धन्यवाद।
औपचारिक रूप से, यदि ए, बी, सी, ..., वाई, जेड अभिव्यक्तियां और ओपी 1, ओपी 2, ..., ओपीएन तुलना ऑपरेटर हैं, तो एक ओपी 1 बी op2 सी ... y opn z बराबर है एक ओपी 1 बी और बी op2 सी और ... y opn z, सिवाय इसके कि प्रत्येक अभिव्यक्ति का मूल्यांकन सबसे अधिक बार किया जाता है। @ http://docs.python.org/reference/expressions.html – georg
साफ, आह? आप 'a Thomas
नहीं कि मुझे ज्यादा परवाह है, लेकिन क्या डाउनवॉटर समझा सकता है कि वह क्यों नीचे आ गया? – ereOn