यदि आप पाइथन में संख्याओं की एक स्ट्रिंग को संख्यात्मक मानों में कनवर्ट करना चाहते हैं, तो पूर्णांक में कनवर्ट करने के लिए int() और फ़्लोटिंग पॉइंट नंबरों में कनवर्ट करने के लिए फ़्लोट() का उपयोग करें।
नमूना कोड के साथ निम्नलिखित को यहां समझाया गया है।
- मूल उपयोग
- संख्यात्मक स्ट्रिंग्स को पूर्णांक में बदलें:
int()
- संख्याओं की एक स्ट्रिंग को फ्लोटिंग पॉइंट नंबरों में बदलें:
float()
- संख्यात्मक स्ट्रिंग्स को पूर्णांक में बदलें:
- विशेष उपयोग
- स्ट्रिंग्स को बाइनरी, ऑक्टल और हेक्साडेसिमल नोटेशन में संख्याओं में कनवर्ट करता है
- घातीय संकेतन में स्ट्रिंग्स को संख्यात्मक मानों में कनवर्ट करता है
- पूर्ण-चौड़ाई वाले अरबी अंकों के तार को संख्याओं में बदलें
- चीनी अक्षरों की एक स्ट्रिंग को संख्याओं में बदलें
एक संख्यात्मक मान को एक स्ट्रिंग में बदलने के लिए, str() का उपयोग करें।
यदि आप संख्याओं या स्ट्रिंग्स को विभिन्न स्वरूपों में बदलना चाहते हैं, तो प्रारूप () फ़ंक्शन या स्ट्रिंग विधि str.format () का उपयोग करें। फिर आप 0-फिल, बाइनरी, ऑक्टल, हेक्साडेसिमल, एक्सपोनेंशियल नोटेशन आदि में कनवर्ट कर सकते हैं। विवरण के लिए निम्न आलेख देखें।
यह स्ट्रिंग्स की सूची को संख्याओं की सूची में भी बदल सकता है। विवरण के लिए निम्न आलेख देखें।
- संख्यात्मक स्ट्रिंग्स को पूर्णांक में बदलें:int()
- संख्याओं की एक स्ट्रिंग को फ्लोटिंग पॉइंट नंबरों में बदलें:float()
- स्ट्रिंग्स को बाइनरी, ऑक्टल और हेक्साडेसिमल नोटेशन में संख्याओं में कनवर्ट करता है
- घातीय संकेतन में स्ट्रिंग्स को संख्यात्मक मानों में कनवर्ट करता है
- पूर्ण-चौड़ाई वाले अरबी अंकों के तार को संख्याओं में बदलें
- चीनी अक्षरों की एक स्ट्रिंग को संख्याओं में बदलें
संख्यात्मक स्ट्रिंग्स को पूर्णांक में बदलें:int()
संख्याओं की एक स्ट्रिंग को पूर्णांक प्रकार संख्याओं में बदलने के लिए आप int() का उपयोग कर सकते हैं।
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
दशमलव बिंदुओं सहित दशमलव, और अल्पविराम द्वारा अलग किए गए तार के परिणामस्वरूप ValueError होगा।
# print(int('1.23'))
# ValueError: invalid literal for int() with base 10: '1.23'
# print(int('10,000'))
# ValueError: invalid literal for int() with base 10: '10,000'
कॉमा-सीमांकित स्ट्रिंग्स को कॉमा को हटाकर (इसे एक खाली स्ट्रिंग के साथ बदलकर) रिप्लेस () विधि का उपयोग करके परिवर्तित किया जा सकता है।
print(int('10,000'.replace(',', '')))
# 10000
संख्याओं की एक स्ट्रिंग को फ्लोटिंग पॉइंट नंबरों में बदलें:float()
एक फ्लोट () का उपयोग संख्याओं की एक स्ट्रिंग को फ्लोटिंग-पॉइंट नंबर प्रकार में बदलने के लिए किया जा सकता है।
print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>
पूर्णांक भाग को छोड़े गए स्ट्रिंग्स को पूर्णांक भाग को 0 के साथ पूरक करके परिवर्तित किया जाता है।
print(float('.23'))
# 0.23
पूर्णांक स्ट्रिंग्स को फ़्लोटिंग-पॉइंट नंबरों में भी परिवर्तित किया जाता है।
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
स्ट्रिंग्स को बाइनरी, ऑक्टल और हेक्साडेसिमल नोटेशन में संख्याओं में कनवर्ट करता है
यदि एक मूलांक को इंट () के दूसरे तर्क के रूप में निर्दिष्ट किया जाता है, तो स्ट्रिंग को एक पूर्णांक इंट में एक बाइनरी, ऑक्टल, हेक्साडेसिमल, आदि के रूप में माना जा सकता है।
print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256
पिछले उदाहरणों की तरह, यदि छोड़ा गया है, तो संख्या को दशमलव संख्या माना जाता है।
print(int('100', 10))
print(int('100'))
# 100
# 100
यदि मूलांक 0 पर सेट है, तो रूपांतरण स्ट्रिंग उपसर्ग पर आधारित है। स्ट्रिंग उपसर्गों के लिए नीचे देखें।
0b
0B
0o
0O
0x
0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256
उपसर्ग और हेक्स अक्षर या तो अपरकेस या लोअरकेस हो सकते हैं।
print(int('FF', 16))
print(int('ff', 16))
# 255
# 255
print(int('0xFF', 0))
print(int('0XFF', 0))
print(int('0xff', 0))
print(int('0Xff', 0))
# 255
# 255
# 255
# 255
बाइनरी, ऑक्टल और हेक्साडेसिमल नंबरों और स्ट्रिंग्स के इंटर-कन्वर्ज़न के बारे में जानकारी के लिए निम्न आलेख देखें।
घातीय संकेतन में स्ट्रिंग्स को संख्यात्मक मानों में कनवर्ट करता है
घातीय संकेतन में स्ट्रिंग्स को फ्लोट () के साथ सीधे फ्लोट प्रकार में परिवर्तित किया जा सकता है।
print(float('1.23e-4'))
print(type(float('1.23e-4')))
# 0.000123
# <class 'float'>
print(float('1.23e4'))
print(type(float('1.23e4')))
# 12300.0
# <class 'float'>
लोअरकेस ई को ई भी कैपिटल किया जा सकता है।
print(float('1.23E-4'))
# 0.000123
पूर्ण-चौड़ाई वाले अरबी अंकों के तार को संख्याओं में बदलें
पूर्ण-चौड़ाई वाले अरबी अंकों को सीधे इंट () या फ्लोट () द्वारा संख्याओं में परिवर्तित किया जा सकता है।
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
हालांकि, यदि ऋण और दशमलव अवधि जैसे प्रतीक पूर्ण-चौड़ाई वाले वर्ण हैं, तो एक ValueError उत्पन्न होगा।
# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'
संख्याओं को बिना किसी समस्या के परिवर्तित किया जा सकता है यदि वे पूर्ण-चौड़ाई वाले वर्ण हैं, लेकिन ऋण और दशमलव अंक आधी-चौड़ाई वाले वर्ण हैं। प्रतिस्थापन () पद्धति का उपयोग करके पूर्ण-चौड़ाई वाले प्रतीकों को आधी-चौड़ाई वाले प्रतीकों के साथ बदलकर रूपांतरण संभव है।
print(float('-1.23'))
# -1.23
print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23
चीनी अक्षरों की एक स्ट्रिंग को संख्याओं में बदलें
यूनिकोडडेटा मॉड्यूल में unicodedata.numeric() फ़ंक्शन का उपयोग एकल यूनिकोड चीनी वर्ण को फ़्लोटिंग-पॉइंट संख्या प्रकार संख्या में बदलने के लिए किया जा सकता है।
यदि यह एक भी अक्षर नहीं है, तो त्रुटि होगी। साथ ही, गैर-संख्यात्मक वर्ण त्रुटि का कारण बनेंगे।
import unicodedata
print(unicodedata.numeric('五'))
print(type(unicodedata.numeric('五')))
# 5.0
# <class 'float'>
print(unicodedata.numeric('十'))
# 10.0
print(unicodedata.numeric('参'))
# 3.0
print(unicodedata.numeric('億'))
# 100000000.0
# print(unicodedata.numeric('五十'))
# TypeError: numeric() argument 1 must be a unicode character, not str
# print(unicodedata.numeric('漢'))
# ValueError: not a numeric character