ប្រសិនបើអ្នកចង់បំប្លែងខ្សែអក្សរនៃលេខទៅជាតម្លៃលេខនៅក្នុង Python សូមប្រើ int() ដើម្បីបំប្លែងទៅជាចំនួនគត់ និង float() ដើម្បីបំប្លែងទៅជាលេខចំនុចអណ្តែត។
ខាងក្រោមនេះត្រូវបានពន្យល់នៅទីនេះ រួមជាមួយនឹងកូដគំរូ។
- ការប្រើប្រាស់មូលដ្ឋាន
- បំលែងខ្សែអក្សរលេខទៅជាចំនួនគត់:
int()
- បំប្លែងខ្សែអក្សរនៃលេខទៅជាលេខអណ្តែតទឹក។:
float()
- បំលែងខ្សែអក្សរលេខទៅជាចំនួនគត់:
- ការប្រើប្រាស់ពិសេស
- បំលែងខ្សែអក្សរជាគោលពីរ គោលដប់ប្រាំបី និងគោលដប់ប្រាំមួយទៅជាលេខ
- បំប្លែងខ្សែអក្សរក្នុងសញ្ញាអិចស្ប៉ូណង់ស្យែលទៅជាតម្លៃលេខ
- បំប្លែងលេខអក្សរអារ៉ាប់ ទទឹងពេញទៅជាលេខ
- បំលែងខ្សែអក្សរចិនទៅជាលេខ
ដើម្បីបម្លែងតម្លៃជាលេខទៅជាខ្សែអក្សរមួយ, ប្រើ Str ដែរ () ។
ប្រសិនបើអ្នកចង់បំប្លែងលេខ ឬខ្សែអក្សរទៅជាទម្រង់ផ្សេងៗ សូមប្រើមុខងារ format() ឬវិធីខ្សែអក្សរ str.format()។ បន្ទាប់មកអ្នកអាចបំប្លែងទៅជា 0-fill, binary, octal, hexadecimal, exponential notation ។ល។ សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិត។
វាក៏អាចបំប្លែងបញ្ជីខ្សែអក្សរទៅជាបញ្ជីលេខផងដែរ។ សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិត។
បំលែងខ្សែអក្សរលេខទៅជាចំនួនគត់: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()
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() ខ្សែអក្សរអាចត្រូវបានបំលែងទៅជាចំនួនគត់ 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
ប្រសិនបើ radix ត្រូវបានកំណត់ទៅ 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
សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានស្តីពីការបំប្លែងនៃលេខគោលពីរ គោលប្រាំបី និងលេខគោលដប់ប្រាំមួយ និងខ្សែអក្សរ។
- ពាក់ព័ន្ធ៖បំប្លែងលេខគោលពីរ គោលប្រាំបី និងលេខគោលដប់ប្រាំមួយ និងខ្សែអក្សរទៅគ្នាទៅវិញទៅមកនៅក្នុង Python
បំប្លែងខ្សែអក្សរក្នុងសញ្ញាអិចស្ប៉ូណង់ស្យែលទៅជាតម្លៃលេខ
ខ្សែអក្សរនៅក្នុងសញ្ញាអិចស្ប៉ូណង់ស្យែលអាចត្រូវបានបំប្លែងដោយផ្ទាល់ទៅជាប្រភេទអណ្តែតដោយប្រើ 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
បំប្លែងលេខអក្សរអារ៉ាប់ ទទឹងពេញទៅជាលេខ
លេខអារ៉ាប់ទទឹងពេញអាចបំប្លែងដោយផ្ទាល់ទៅជាលេខដោយ 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'
លេខអាចត្រូវបានបំប្លែងដោយគ្មានបញ្ហា ប្រសិនបើពួកវាជាតួអក្សរពេញទទឹង ប៉ុន្តែដក និងទសភាគគឺជាតួអក្សរពាក់កណ្តាលទទឹង។ ការបំប្លែងគឺអាចធ្វើទៅបានដោយការជំនួសនិមិត្តសញ្ញាទទឹងពេញជាមួយនឹងនិមិត្តសញ្ញាពាក់កណ្តាលទទឹងដោយប្រើវិធីជំនួស()។
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