Operator Precedence in Python

Operator Precedence in Python – किसी भी अन्‍य Programming Language की तरह ही Python में भी जो Mathematical Expressions Execute होते हैं, उनके Execution में विभिन्‍न प्रकार के Operators का एक निश्चित Execution Flow या Precedence होता है जो इस बात को निश्चित करता है कि कौनसा Operator पहले अपना काम करेगा और कौनसा Operator बाद में।

उदाहरण के लिए यदि एक ही Mathematical Expression में Addition व Multiplication दोनों हो रहे हों, तो Multiplication Operator को Addition Operator की तुलना में प्राथमिकता प्राप्‍त है। इसलिए पहले Mathematical Operator Execute होकर अपने दोनों Operands का Multiplication करेगा और उससे जो Result Generate होगा, उसे Addition Operator द्वारा Add किया जाएगा। जैसे-

     12 * 10 + 2 * 21

Python जब इस Expression को Compute करेगा, तो उसके Computation का Flow निम्‍नानुसार होगा-

12 * 10 + 2 * 21
120 + 2 * 21
120 + 42
162

अब कौनसा Operator पहले Apply होगा और कौनसा बाद में, इस बात को जानने के लिए उपरोक्‍त सारणी को देखा जा सकता है क्‍योंकि इस सारणी में सभी Supported Python Operators को उनकी Precedence के आधार पर बढ़ते क्रम में ही Specify किया गया है। इसलिए यदि इस सारणी के आधार पर समझें तो सारणी में जो Operator पहले Specify किया गया है, किसी भी Expression में उसकी प्राथमिकता कम होगी और वह Operator बाद में Execute होगा जबकि सारणी में जो Operator बाद में Specify किया गया है, किसी भी Expression में उसकी प्राथमिकता ज्‍यादा होगी और वह Operator पहले Execute होगा।

इतना ही नहीं, किसी भी अन्‍य Programming Langauge की तरह ही कुछ Operators Left-to-Right Flow होते हुए Solve होते हैं तो कुछ Operators Right-to-Left Flow होते हुए Solve होते हैं। Assignment Operators हमेंशा Right-to-Left Flow होते हैं, इसलिए यदि हम अपने पिछले Example से ही समझें, तो इस Expression को निम्‍नानुसार तरीके से फिर से लिख सकते हैं-

P = 12 * 10 + 2 * 21                # Calculation Flows Left-to-Right
P = 120 + 2 * 21                     # Calculation Flows Left-to-Right
P = 120 + 42                          # Calculation Flows Left-to-Right
P = 162                                   # Calculation Flows Right-to-Left

जहां सम्‍पूर्ण Expression Compute हो जाने के बाद Variable P में अन्तिम Resultant मान 162 सबसे अन्‍त में Store होता है साथ ही सम्‍पूर्ण Expression Left-to-Right Solve होता है क्‍योंकि इस Expression के सभी Mathematical Operators Left-to-Right Execute होते हैं, लेकिन Assignment Operator Right-to-Left Solve होता है, इसीलिए मान 162, Assignment Operator के Right Side में Compute होता है लेकिन अन्‍त में Left Side के Specified Variable P में जाकर Store होता है।

इतना ही नहीं, जब एक ही Expression में एक ही Category के Multiple Operators Exist होते हैं, तब भी सारणी में दर्शाए गए तरीके के अनुसार जो Operator सबसे Left Side में है, वो सबसे पहले Solve होता है और क्रम से जो Operator Left-to-Right Side में बाद में आता है, वो बाद में Solve होता है।

कई बार कुछ ऐसी स्थिति होती है, जब हमें किसी Lower Priority वाले Operator की Calculation को पहले Perform करना होता है। इस स्थिति को Handle करने के लिए हम Parenthesis का प्रयोग कर सकते हैं क्‍योंकि Parenthesis की प्राथमिकता सारणी के अनुसार Third-Last होती है। इसलिए यदि इस बात को हम पिछले Example पर Apply करें जहां हम पहले जोड़ करना चाहते हैं और उसके बाद गुण करना चाहते हैं, तो हमारा Expression कुछ निम्‍नानुसार तरीके से Solve होगा-

P = 12 * ( (10 + 2) * 21 )
P = 12 * (12 * 21)
P = 12 * 252
P = 3024

इस Example में हमने Parenthesis के माध्‍यम से Operators के Apply होने के प्राथमिकता क्रम को बदल दिया है। इसलिए इस Expression में सबसे पहले Inner Parenthesis का Expression (10 + 2) Execute होता है, जिसके परिणामस्‍वरूप मान 12 Compute होता है। फिर इस Result 12 के साथ Outer Parenthesis का Expression (12 * 21) Execute होता है, फलस्‍वरूप मान 252 Compute होता है और अन्‍त में इस मान 252 का गुणा 12 से होता है और Resultant मान 3024 Variable P में Store हो जाता है।

हम देख सकते हैं कि हालांकि Expression में Participate करने वाले Numbers वही हैं जो पहले थे, लेकिन केवल Parenthesis का प्रयोग कर लेने की वजह से Priority Change हो गया, जिसके परिणामस्‍वरूप हमें प्राप्‍त होने वाला Final Resultant मान भी Change हो गया। इस तरह से हम किसी Low Priority वाले Operation को Parenthesis का प्रयोग करते हुए High Priority वाले Operation में Change करके उसे Execution में पहले Execute होने के लिए Priority दिलवा सकते हैं। (Operator Precedence in Python)

Python in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Python in Hindi | Page: 602 | Format: PDF

BUY NOW GET DEMO REVIEWS