पायथन में ऑपरेटर प्राथमिकता पहेली: 'इन' और तुलना के रहस्य को उजागर करना
पाइथन के 'इन' ऑपरेटर के साथ देखा गया हैरान करने वाला व्यवहार और तुलनाओं ने कई लोगों को हतप्रभ कर दिया है। लेकिन सतह के नीचे ऑपरेटर प्राथमिकता और अभिव्यक्ति श्रृंखला का एक सूक्ष्म अंतरसंबंध होता है।
ऑपरेटर प्राथमिकता उस क्रम को निर्धारित करती है जिसमें एक अभिव्यक्ति के भीतर संचालन का मूल्यांकन किया जाता है। पायथन में, 'इन' और तुलना ऑपरेटरों (उदाहरण के लिए, '==') को समान प्राथमिकता दी जाती है। परिणामस्वरूप, उन्हें बाएँ से दाएँ संसाधित किया जाता है।
हालाँकि, जब जंजीरदार अभिव्यक्तियाँ शामिल होती हैं तो स्थिति अधिक जटिल हो जाती है। किसी अन्य मान के साथ 'इन' ऑपरेशन के परिणाम की तुलना करने का प्रयास करते समय एक सामान्य गड़बड़ी उत्पन्न होती है। निम्नलिखित उदाहरण पर विचार करें:
'1' in '11' == True
आश्चर्यजनक रूप से, यह अभिव्यक्ति गलत का मूल्यांकन करती है। इसका कारण 'इन' और '==' की श्रृंखला में निहित है। अभिव्यक्ति को प्रभावी ढंग से इस प्रकार पार्स किया गया है:
('1' in '11') and ('11' == True)
'in' ऑपरेटर सत्यापित करता है कि '1' है या नहीं '11' का सदस्य है, जिसका परिणाम सत्य है। हालाँकि, दूसरी तुलना, '11' == सत्य, गलत परिणाम देती है। इस प्रकार, समग्र अभिव्यक्ति का मूल्यांकन गलत होता है।
वांछित सही मूल्य प्राप्त करने के लिए, किसी को स्पष्ट रूप से प्राथमिकता के क्रम को बदलना होगा। इसे कोष्ठक का उपयोग करके प्राप्त किया जा सकता है:
('1' in '11') == True
कोष्ठक में 'इन' ऑपरेशन को संलग्न करके, अभिव्यक्ति का मूल्यांकन इसके भीतर किया जाता है सत्य के साथ तुलना करने से पहले गुंजाइश। इस परिवर्तन के परिणामस्वरूप इच्छित परिणाम प्राप्त होता है।
जटिल पायथन अभिव्यक्तियों के व्यवहार को समझने में ऑपरेटर प्राथमिकता और चेनिंग को समझना महत्वपूर्ण है। यह डेवलपर्स को संचालन के अनुक्रम का अनुमान लगाने और अप्रत्याशित नुकसान से बचने का अधिकार देता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3