اگر آپ Python میں نمبروں کے سٹرنگ کو عددی قدروں میں تبدیل کرنا چاہتے ہیں تو int() کو عدد میں تبدیل کرنے کے لیے اور float() کو فلوٹنگ پوائنٹ نمبرز میں تبدیل کرنے کے لیے استعمال کریں۔
ذیل میں نمونہ کوڈ کے ساتھ وضاحت کی گئی ہے۔
- بنیادی استعمال
- عددی تاروں کو عدد میں تبدیل کریں۔:
int() - اعداد کی ایک تار کو فلوٹنگ پوائنٹ نمبرز میں تبدیل کریں۔:
float()
- عددی تاروں کو عدد میں تبدیل کریں۔:
- خصوصی استعمال
- بائنری، آکٹل اور ہیکسا ڈیسیمل اشارے میں سٹرنگز کو نمبرز میں تبدیل کرتا ہے۔
- کفایتی اشارے میں تاروں کو عددی قدروں میں تبدیل کرتا ہے۔
- مکمل چوڑائی والے عربی عددی تاروں کو اعداد میں تبدیل کریں۔
- چینی حروف کی ایک تار کو اعداد میں تبدیل کریں۔
عددی قدر کو سٹرنگ میں تبدیل کرنے کے لیے، str() استعمال کریں۔
اگر آپ نمبرز یا سٹرنگز کو مختلف فارمیٹس میں تبدیل کرنا چاہتے ہیں تو format() فنکشن یا سٹرنگ میتھڈ str.format() استعمال کریں۔ پھر آپ 0-fill، binary، octal، hexadecimal، exponential notation، وغیرہ میں تبدیل کر سکتے ہیں۔ تفصیلات کے لیے درج ذیل مضمون کو دیکھیں۔
یہ تاروں کی فہرست کو نمبروں کی فہرست میں بھی تبدیل کر سکتا ہے۔ تفصیلات کے لیے درج ذیل مضمون کو دیکھیں۔
- عددی تاروں کو عدد میں تبدیل کریں۔: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()
ایک 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'>
بائنری، آکٹل اور ہیکسا ڈیسیمل اشارے میں سٹرنگز کو نمبرز میں تبدیل کرتا ہے۔
اگر ایک ریڈکس کو int() کی دوسری دلیل کے طور پر بیان کیا گیا ہے، تو اسٹرنگ کو بائنری، آکٹل، ہیکساڈیسیمل وغیرہ کے طور پر سمجھ کر انٹیجر انٹ میں تبدیل کیا جا سکتا ہے۔
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 پر سیٹ کیا جاتا ہے، تو تبدیلی سٹرنگ کے سابقہ پر مبنی ہوتی ہے۔ سٹرنگ کے سابقے کے لیے نیچے دیکھیں۔
0b0B
0o0O
0x0X
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'>
چھوٹے e کو بڑے حروف سے E بھی کیا جا سکتا ہے۔
print(float('1.23E-4'))
# 0.000123
مکمل چوڑائی والے عربی عددی تاروں کو اعداد میں تبدیل کریں۔
مکمل چوڑائی والے عربی ہندسوں کو int() یا float() کے ذریعہ براہ راست نمبروں میں تبدیل کیا جاسکتا ہے۔
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'
نمبروں کو بغیر کسی پریشانی کے تبدیل کیا جا سکتا ہے اگر وہ پوری چوڑائی والے حروف ہیں، لیکن مائنس اور ڈیسیمل پوائنٹس نصف چوڑائی والے حروف ہیں۔ تبدیلی پوری چوڑائی کی علامتوں کو نصف چوڑائی کی علامتوں سے بدل کر replace() طریقہ استعمال کرکے ممکن ہے۔
print(float('-1.23'))
# -1.23
print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23
چینی حروف کی ایک تار کو اعداد میں تبدیل کریں۔
unicodedata.numeric() فنکشن unicodedata ماڈیول میں ایک واحد یونیکوڈ چینی کریکٹر کو فلوٹنگ پوائنٹ نمبر ٹائپ نمبر میں تبدیل کرنے کے لیے استعمال کیا جا سکتا ہے۔
اگر یہ ایک حرف نہیں ہے، تو ایک غلطی ہو جائے گی۔ نیز، غیر عددی حروف ایک خرابی کا سبب بنیں گے۔
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


