បំប្លែងលេខខ្សែអក្សរ str ទៅជាលេខ int អណ្តែតក្នុង Python

អាជីវកម្ម

ប្រសិនបើអ្នកចង់បំប្លែងខ្សែអក្សរនៃលេខទៅជាតម្លៃលេខនៅក្នុង 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

សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានស្តីពីការបំប្លែងនៃលេខគោលពីរ គោលប្រាំបី និងលេខគោលដប់ប្រាំមួយ និងខ្សែអក្សរ។

បំប្លែងខ្សែអក្សរក្នុងសញ្ញាអិចស្ប៉ូណង់ស្យែលទៅជាតម្លៃលេខ

ខ្សែអក្សរនៅក្នុងសញ្ញាអិចស្ប៉ូណង់ស្យែលអាចត្រូវបានបំប្លែងដោយផ្ទាល់ទៅជាប្រភេទអណ្តែតដោយប្រើ 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
Copied title and URL