பைத்தானில் உள்ள எண்களின் சரத்தை எண் மதிப்புகளாக மாற்ற விரும்பினால், முழு எண்களாக மாற்ற int() ஐயும், மிதக்கும் புள்ளி எண்களாக மாற்ற float() ஐயும் பயன்படுத்தவும்.
மாதிரிக் குறியீட்டுடன் பின்வருபவை இங்கே விளக்கப்பட்டுள்ளன.
- அடிப்படை பயன்பாடு
- எண் சரங்களை முழு எண்களாக மாற்றவும்:
int()
- எண்களின் சரத்தை மிதக்கும் புள்ளி எண்களாக மாற்றவும்:
float()
- எண் சரங்களை முழு எண்களாக மாற்றவும்:
- சிறப்பு பயன்பாடு
- பைனரி, ஆக்டல் மற்றும் ஹெக்ஸாடெசிமல் குறியீட்டில் உள்ள சரங்களை எண்களாக மாற்றுகிறது
- அதிவேக குறியீட்டில் உள்ள சரங்களை எண் மதிப்புகளாக மாற்றுகிறது
- முழு அகல அரபு எண் சரங்களை எண்களாக மாற்றவும்
- சீன எழுத்துக்களின் சரத்தை எண்களாக மாற்றவும்
ஒரு எண் மதிப்பை சரமாக மாற்ற, str() ஐப் பயன்படுத்தவும்.
நீங்கள் எண்கள் அல்லது சரங்களை பல்வேறு வடிவங்களுக்கு மாற்ற விரும்பினால், வடிவம்() செயல்பாடு அல்லது சரம் முறை str.format() ஐப் பயன்படுத்தவும். பின்னர் நீங்கள் 0-நிரப்பு, பைனரி, எண்ம, ஹெக்ஸாடெசிமல், அதிவேக குறியீடு போன்றவற்றுக்கு மாற்றலாம். விவரங்களுக்கு பின்வரும் கட்டுரையைப் பார்க்கவும்.
- தொடர்புடையது:பைத்தானில் வடிவமைப்பு மாற்றம், வடிவம் (0-நிரப்புதல், அதிவேகக் குறியீடு, ஹெக்ஸாடெசிமல் போன்றவை)
இது சரங்களின் பட்டியலை எண்களின் பட்டியலாகவும் மாற்றலாம். விவரங்களுக்கு பின்வரும் கட்டுரையைப் பார்க்கவும்.
- தொடர்புடையது:பைத்தானில் சரங்களின் பட்டியல்கள் (வரிசைகள்) மற்றும் எண்களின் பட்டியல்களை ஒன்றுக்கொன்று மாற்றுகிறது
- எண் சரங்களை முழு எண்களாக மாற்றவும்:int()
- எண்களின் சரத்தை மிதக்கும் புள்ளி எண்களாக மாற்றவும்:float()
- பைனரி, ஆக்டல் மற்றும் ஹெக்ஸாடெசிமல் குறியீட்டில் உள்ள சரங்களை எண்களாக மாற்றுகிறது
- அதிவேக குறியீட்டில் உள்ள சரங்களை எண் மதிப்புகளாக மாற்றுகிறது
- முழு அகல அரபு எண் சரங்களை எண்களாக மாற்றவும்
- சீன எழுத்துக்களின் சரத்தை எண்களாக மாற்றவும்
எண் சரங்களை முழு எண்களாக மாற்றவும்:int()
எண்களின் சரத்தை முழு எண் வகை எண்களாக மாற்ற நீங்கள் int() ஐப் பயன்படுத்தலாம்.
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
தசம புள்ளிகள் உட்பட தசமங்கள் மற்றும் காற்புள்ளிகளால் பிரிக்கப்பட்ட சரங்கள் மதிப்புப் பிழையை ஏற்படுத்தும்.
# 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'>
பைனரி, ஆக்டல் மற்றும் ஹெக்ஸாடெசிமல் குறியீட்டில் உள்ள சரங்களை எண்களாக மாற்றுகிறது
ஒரு ரேடிக்ஸ் 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 என அமைக்கப்பட்டால், சரம் முன்னொட்டை அடிப்படையாகக் கொண்டு மாற்றம் செய்யப்படும். சர முன்னொட்டுகளுக்கு கீழே பார்க்கவும்.
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
பைனரி, ஆக்டல் மற்றும் ஹெக்ஸாடெசிமல் எண்கள் மற்றும் சரங்களின் இடைமாற்றம் பற்றிய தகவலுக்கு பின்வரும் கட்டுரையைப் பார்க்கவும்.
- தொடர்புடையது:பைனரி, ஆக்டல் மற்றும் ஹெக்ஸாடெசிமல் எண்கள் மற்றும் சரங்களை ஒன்றுக்கொன்று பைத்தானில் மாற்றவும்
அதிவேக குறியீட்டில் உள்ள சரங்களை எண் மதிப்புகளாக மாற்றுகிறது
அதிவேக குறியீட்டில் உள்ள சரங்களை நேரடியாக மிதவை வகைக்கு float() மூலம் மாற்றலாம்.
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
முழு அகல அரபு எண் சரங்களை எண்களாக மாற்றவும்
முழு அகல அரபு எண்களை எண்ணாக () அல்லது float () மூலம் நேரடியாக எண்களாக மாற்றலாம்.
print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>
print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>
இருப்பினும், கழித்தல் மற்றும் தசம காலங்கள் போன்ற குறியீடுகள் முழு அகல எழுத்துகளாக இருந்தால், மதிப்புப் பிழை உருவாக்கப்படும்.
# 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