Assignment Statements in Python – अभी तक हमने जितने भी Example Programs Create किए हैं, उनमें से ज्यादातर में Assignment Statements को किसी न किसी तरह से Use किया है। Assignment Statement के हमेंशा दो हिस्से होते हैं। Equal To Operator के Left Side के हिस्से में हमेंशा Target Variable होता है जबकि Right Side के हिस्से में हमेंशा वो Object होता है, जिसे Left Side के Target में Set करना होता है।
Assignment Statement एक ऐसा Statement होता है जो Mostly Left Side में Specified Variable में Right Side में Specified Object या Expression के Reference को Assign करता है और ये Statement हमेंशा अपने Right Side में Specified Object का Reference ही Hold करता है। इसलिए Python Variables Mostly एक प्रकार का Pointer ही होते हैं जो किसी Actual Data Storage Area को Point करते हैं।
Python में जब किसी Name को Specify करके उसमें किसी Value को Assign किया जाता है, उसी समय उस नाम का Variable Create हो जाता है जो उस Memory Location को Point करता है, जहां पर वह Value Stored है, जिसका Reference इस Newly Created Named Variable में Stored है।
इसीलिए जिस भी Variable को Use किया जाता है, उसे उसी जगह पर Declare कर लिया जाता है जिस जगह उसे Use करना होता है। यानी हमें Variable को C/C++ की तरह Use करने से पहले Declare करना जरूरी नहीं होता। Variable Declaration और Use करने के विषय में हम पहले भी विस्तृत Discussion कर चुके हैं।
Python में हम Assignment को कई तरीकों से Specify करते हुए कई तरह की जरूरतों को पूरा कर सकते हैं। इन विभिन्न प्रकार के Assignment Statements को एक Simple Example द्वारा निम्नानुसार समझा जा सकता है-
[code] FileName: BasicAssignmentStatements.py # Simple Assignment Statement name = "KRISHNA" print("Simple Assignment: name=", name) # Tuple Positional Assignment firstName, lastName = 'KRISHN' , 'YADAV' print("Tuple Positional Assignment:", firstName, lastName) # List Positional Assignment [firstName, lastName] = ['KRISHN' , 'YADAV'] print("List Positional Assignment:", firstName, lastName, "\n") # Generalized Sequence Assignment char1, char2, char3, char4, char5, char6 = "MADHAV" print("Generalized Sequence Assignment:") print("All Characters:",char1, char2, char3, char4, char5, char6,"\n") # Extended Sequence Assignment charFirst, *charRest = "MADHAV" print("Extended Sequence Assignment:") print("\t All Characters:", charFirst, charRest, "\n") # Multiple Target Assignment firstNo = secondNo = thirdNo = 10 print("Multiple Target Assignment:") print("\tAll Numbers are same again:", firstNo, secondNo, thirdNo,"\n") # Shorthand Assignment firstNo += 10 print("Shorthand Assignment:") print("\t Same as firstNo = firstNo + 10:", firstNo) Output Simple Assignment: name= KRISHNA Tuple Positional Assignment: KRISHN YADAV List Positional Assignment: KRISHN YADAV Generalized Sequence Assignment: All Characters: M A D H A V Extended Sequence Assignment: All Characters: M ['A', 'D', 'H', 'A', 'V'] Multiple Target Assignment: All Numbers are same again: 10 10 10 Shorthand Assignment: Same as firstNo = firstNo + 10: 20 [/code]
इस Example में Tuple Positional Assignment के रूप में जब हम निम्नानुसार Assignment Statement Specify करते हैं-
firstName, lastName = ‘KRISHN’ , ‘YADAV’
तो क्रम से पहले Data Item firstName में “KRISHN” Store हो जाता है और दूसरे Data Item में lastName में “YADAV” Store हो जाता है। इस तरह के Statement को Tuple Unpacking Assignment Statement भी कहा जाता है क्योंकि जब हम इस तरह का Statement लिखते हैं, तो Python स्वयं ही Equal To Operator के Right Side में Internally एक Tuple Create कर लेता है और उसके प्रत्येक Data Item को क्रम से One by One Left Side के Tuple के Data Items को Assign कर देता है।
इसी तरह से जब हम List Positional Assignment के रूप में जब हम निम्नानुसार Assignment Statement Specify करते हैं-
[firstName, lastName] = [‘KRISHN’ , ‘YADAV’]
तब भी पहले की तरह ही क्रम से पहले Data Item firstName में “KRISHN” Store हो जाता है और दूसरे Data Item में lastName में “YADAV” Store हो जाता है। इस तरह के Statement को List Unpacking Assignment Statement भी कहा जाता है क्योंकि जब हम इस तरह का Statement लिखते हैं, तो Python स्वयं ही Equal To Operator के Right Side में Internally एक List Create कर लेता है और उसके प्रत्येक Data Item को क्रम से One by One Left Side के List के Data Items को Assign कर देता है।
जबकि निम्न Statement के माध्यम से हम एक Single Statement द्वारा Multiple Variables को Same Value Assign कर सकते हैं-
firstNo = secondNo = thirdNo = 10
ये Statement तीनों ही Variables को समान Integer Object 10 से Assign कर देता है। यानी इन तीनों Variables में एक समान Integer Object का Reference ही Store होता है, Integer Object की तीन अलग Copies Create नहीं होती हैं। इसीलिए इन तीनों में से किसी एक का भी मान बदल दिया जाए, तो बाकी के अन्य दोनों Variables का मान भी बदल जाता है।
उदाहरण के लिए यदि firstNo = 20 कर दिया जाए, तो secondNo व thirdNo का मान भी बदलकर 20 हो जाता है और ऐसा केवल इसीलिए होता है क्योंकि ये तीनो Variables तीन अलग Integer Objects को Refer नहीं कर रहे हैं, बल्कि तीनों ही Variables में एक ही Object का Reference Stored है।
अगले Statement में हमने एक Single String के विभिन्न Characters को विभिन्न Variables में Store किया है-
char1, char2, char3, char4, char5, char6 = “MADHAV”
जब ये Statement Execute होता है, तब Equal To Operator के Right Side में Specified String के सभी Characters, क्रम से One by One Left Side के सभी Variables में Store हो जाते हैं। इस तरह से Assign होने वाले तरीके को Sequence Assignment के नाम से जाना जाता है।
Extended Sequence Unpacking के अन्तर्गत हमने निम्नानुसार Statement Specify किया है-
charFirst, *charRest = “MADHAV”
जब हम इस तरह का Assignment Statement Specify करते हैं, तब Right Side में Specified String का पहला Character तो charFirst Variable में Store हो जाता है, जबकि String के बाकी के बचे हुए सभी अन्य Characters charRest नाम के Variable में एक List के रूप में Store हो जाते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Python in Hindi | Page: 602 | Format: PDF