String Conversion in Python को Design करते समय इस बात का विशेष ध्यान रखा गया था कि इसमें किसी भी Calculation में दोनों Operands का Type पूरी तरह से निश्चित व समान हो। यदि दोनों का Type पूरी तरह से निश्चित व समान न हो, और Automatic Type Casting करके भी दोनों Operands का Type पूरी तरह से निश्चित व समान होना सम्भव न हो, तो Python अपनी तरफ से कोई Guess करके Operation को Complete नहीं करेगा, जो कि किसी भी तरह से शंकापूर्ण हो।
इसीलिए जब हम Python में किसी Integer Value को String के साथ जोड़ने का प्रयास करते हैं, तो हम Arithmetic Plus ( + ) Operator का प्रयोग करते हुए ऐसा तब तक नहीं कर सकते, जब तक कि हम String को Integer या Integer को String Value में Manually Type Cast न कर दें।
यानी Python स्वयं अपनी तरफ से String को Integer या Integer को String में Automatic Type Cast करके Calculation को Perform नहीं करता। या अन्य शब्दों में कहें तो किस Type को किस अन्य Type में Automatically Convert करके Calculation को Perform कर दिया जाए, इस बात का अन्दाजा स्वयं Python अपने स्तर पर नहीं लगाता।
इस स्थिति में हमें स्वयं या तो Integer Value को String में Translate करने के लिए str() Function या repr() Function का प्रयोग करते हुए Manual Type Casting करना पड़ता है या फिर String Value को Integer में Translate करने के लिए int() Function का प्रयोग करते हुए Manual Type Casting करना पड़ता है। दो अलग तरह के Data Types के Operands पर Python स्वयं अपने स्तर पर किसी तरह का Automatic Type Casting Operation Perform नहीं करता।
str() व repr() Function दोनों ही समान काम करते हैं, लेकिन str() Function से Return होने वाले String के Around कोई Quotes नहीं होता, जबकि repr() Function से Return होने वाले String के Around एक Single Quote होता है। इन विभिन्न प्रकार के Conversions को ठीक से समझने के लिए हम निम्नानुसार एक Example Program Create कर सकते हैं-
[code] FileName: StrIntManualTypeCasting.py strInt = '35' # print(strInt, "+ 1", strInt+1) # Output: TypeError: must be str, not int print("Add like Integers ", end="") print(strInt,"+ 1 =", int(strInt) + 1) # Output: 35 + 1 = 36 print("Concatenate like Strings with str() Function: ", end="") print(strInt,"+ 1 =", strInt + str(1)) # Output: 35 + 1 = 351 print("Concatenate like Strings with repr() Function: ", end="") print(strInt,"+ 1 =", strInt + repr(1)) # Output: 35 + 1 = 351 print("Add like Floats ", end="") print(strInt,"+ 1 =", float(strInt) + 1) # Output: 35.0 + 1 = 36.0 Output Add like Integers 35 + 1 = 36 Concatenate like Strings with str() Function: 35 + 1 = 351 Concatenate like Strings with repr() Function: 35 + 1 = 351 Add like Floats 35 + 1 = 36.0 [/code]
इस Conversion को हम Core Type में भी काफी विस्तार से Discuss कर चुके हैं, इसलिए ये सभी Codes Self Explained हैं। इन्हें फिर से Discuss करने की जरूरत नहीं हैं।
जब हम Conversion को समझ रहे हैं, तब किसी Single Character को उसके Equivalent ASCII Byte Code के रूप में Underlying Integer Code को Retrieve करने के लिए हम ord() Function का प्रयोग कर सकते हैं। ये Function Parameter के रूप में एक Single Character Accept करता है और Return Value के रूप में उस Parameter के रूप में Pass किए गए Character का Integer ASCII Code Return करता है।
जबकि chr() Function, ord() Function का Exactly Opposite करते हुए Integer Parameter के रूप में एक ASCII Code Accept करता है और Return Value के रूप में उस ASCII Code से Associated ASCII Character Return कर देता है। तकनीकी रूप से समझें तो ये दोनों ही Functions Specified Parameter के Unicode Ordinals या “Code Points” को ASCII Code to Character व Character to ASCII Code में Convert करते हैं।
इन Functions को हम किसी String के प्रत्येक Character पर एक Loop के माध्यम से Apply कर सकते हैं और प्रत्येक Character का ASCII Code Generate कर सकते हैं अथवा ASCII Codes के माध्यम से String Generate कर सकते हैं। इतना ही नहीं, यदि जरूरत हो, तो हम String-Based Math Operations भी Perform कर सकते हैं।
इन Functions का प्रयोग करते हुए हम निम्नानुसार एक Example Program Create कर सकते हैं, जो कि User से String के रूप में एक Binary Digits की String को Accept करता है और फिर उस Binary Digits की String को Equivalent Integer Value में Translate करके Output के रूप में Return कर देता है-
[code] FileName: Binary2IntegerConversion.py strBin = input("Enter BINARY DIGITS String like 10010011: ") print("Inputted Binary is:", strBin) # Convert Binary to Integer eqInt = 0 while strBin != '': eqInt = eqInt * 2 + ( ord(strBin[0]) - ord('0') ) strBin = strBin[1:] print("Equivalent Integer is:", eqInt) Output Enter BINARY DIGITS String like 10010011: 10101100 Inputted Binary is: 10101100 Equivalent Integer is: 172 [/code]
इस Example में हमने while Loop का प्रयोग करते हुए Input की गई Binary Digits की String के प्रत्येक Character को One by One Access किया है और फिर प्रत्येक Digit की Positioning के आधार पर Calculation Perform करके Equivalent Integer Value को Calculate किया है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Python in Hindi | Page: 602 | Format: PDF