Python ផ្តល់វិធីសាស្ត្រខ្សែអក្សរជាច្រើនដើម្បីកំណត់ និងពិនិត្យមើលថាតើប្រភេទខ្សែអក្សរជាលេខ ឬអក្សរក្រម។
វិធីសាស្រ្តនីមួយៗត្រូវបានពន្យល់ដោយលេខកូដគំរូ។
- កំណត់ថាតើខ្សែអក្សរគឺជាខ្ទង់ទសភាគ:
str.isdecimal()
- កំណត់ថាតើខ្សែអក្សរគឺជាលេខ:
str.isdigit()
- កំណត់ថាតើខ្សែអក្សរគឺជាតួអក្សរដែលតំណាងឱ្យលេខ:
str.isnumeric()
- កំណត់ថាតើខ្សែអក្សរជាអក្សរក្រមឬអត់:
str.isalpha()
- កំណត់ថាតើខ្សែអក្សរជាអក្សរក្រមលេខ:
str.isalnum()
- កំណត់ថាតើខ្សែអក្សរគឺជាតួអក្សរ ASCII:
str.isascii()
- ការវិនិច្ឆ័យនៃខ្សែអក្សរទទេ
- កំណត់ថាតើខ្សែអក្សរអាចត្រូវបានបំលែងទៅជាលេខ
សម្រាប់វិធីសាស្រ្តផ្សេងក្រៅពី isascii() ខ្សែអក្សរដែលមានខ្សែអក្សរទទេ និមិត្តសញ្ញាខាងក្រោម។ល។ គឺមិនពិត។
,
.
-
-1.23 ជាដើម ដោយសារតម្លៃលេខត្រូវបានពន្យល់នៅចុងបញ្ចប់នៃផ្នែកនេះ។
កន្សោមធម្មតាអាចត្រូវបានប្រើដើម្បីកំណត់ប្រភេទតួអក្សរកាន់តែបត់បែន និងដើម្បីស្រង់ប្រភេទតួអក្សរដែលពាក់ព័ន្ធ។
សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានបន្ថែមអំពីរបៀបកំណត់ដូចខាងក្រោម
- របៀបបំប្លែងខ្សែអក្សរលេខ (str) ទៅជាលេខ (int, float)
- របៀបកំណត់អក្សរធំ និងអក្សរតូច
- ពាក់ព័ន្ធ៖ការបំប្លែងខ្សែអក្សរនៃលេខទៅជាតម្លៃលេខនៅក្នុង Python
- ពាក់ព័ន្ធ៖បញ្ជីវិធីសាស្រ្តខ្សែអក្សរដើម្បីរៀបចំករណីនៅក្នុង Python
- កំណត់ថាតើខ្សែអក្សរគឺជាខ្ទង់ទសភាគ:str.isdecimal()
- កំណត់ថាតើខ្សែអក្សរគឺជាលេខ:str.isdigit()
- កំណត់ថាតើខ្សែអក្សរគឺជាតួអក្សរដែលតំណាងឱ្យលេខ:str.isnumeric()
- កំណត់ថាតើខ្សែអក្សរជាអក្សរក្រមឬអត់:str.isalpha()
- កំណត់ថាតើខ្សែអក្សរជាអក្សរក្រមលេខ:str.isalnum()
- កំណត់ថាតើខ្សែអក្សរគឺជាតួអក្សរ ASCII:str.isascii()
- ការវិនិច្ឆ័យនៃខ្សែអក្សរទទេ
- កំណត់ថាតើខ្សែអក្សរអាចត្រូវបានបំលែងទៅជាលេខ
កំណត់ថាតើខ្សែអក្សរគឺជាខ្ទង់ទសភាគ:str.isdecimal()
ក្នុង isdecimal() វាជាការពិត ប្រសិនបើតួអក្សរទាំងអស់ជាខ្ទង់ទសភាគ នោះគឺជាតួអក្សរនៅក្នុងប្រភេទទូទៅ Nd នៃយូនីកូដ។ វាក៏ជាការពិតសម្រាប់លេខអារ៉ាប់ដែលមានទទឹងពេញ។ល។
s = '1234567890'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 1234567890
# isdecimal: True
# isdigit: True
# isnumeric: True
s = '1234567890'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 1234567890
# isdecimal: True
# isdigit: True
# isnumeric: True
ប្រសិនបើវាមាននិមិត្តសញ្ញាដូចជាសញ្ញាដក ឬសញ្ញាសម្គាល់ នោះវាមិនពិតទេ។ ឧទាហរណ៍ ប្រសិនបើអ្នកចង់កំណត់ថាខ្សែអក្សរដូចជា ‘-1.23’ គឺជាតម្លៃលេខ អ្នកអាចប្រើការដោះស្រាយករណីលើកលែង។ នេះត្រូវបានពន្យល់នៅចុងបញ្ចប់នៃផ្នែកនេះ។
s = '-1.23'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = -1.23
# isdecimal: False
# isdigit: False
# isnumeric: False
កំណត់ថាតើខ្សែអក្សរគឺជាលេខ:str.isdigit()
ក្នុង isdigit() បន្ថែមពីលើលេខដែលពិតក្នុង isdecimal() លេខដែលតម្លៃទ្រព្យសម្បត្តិយូនីកូដ Numeric_Type គឺខ្ទង់ ឬទសភាគក៏ពិតដែរ។
ឧទាហរណ៍ លេខអក្សរធំដែលតំណាងឱ្យការេគឺមិនពិតក្នុង isdecimal() ប៉ុន្តែពិតក្នុង isdigit()។
- លេខអក្សរធំតំណាងឱ្យការ៉េ
- ²
- \u00B2}’
s = '10\u00B2'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 10²
# isdecimal: False
# isdigit: True
# isnumeric: True
កំណត់ថាតើខ្សែអក្សរគឺជាតួអក្សរដែលតំណាងឱ្យលេខ:str.isnumeric()
ក្នុង isnumeric() បន្ថែមពីលើលេខដែលពិតក្នុង isdigit() លេខដែលតម្លៃទ្រព្យសម្បត្តិយូនីកូដ Numeric_Type គឺជាលេខក៏ពិតផងដែរ។
ប្រភាគ លេខរ៉ូម៉ាំង និងលេខចិនក៏ពិតដែរ។
s = '\u00BD'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = ½
# isdecimal: False
# isdigit: False
# isnumeric: True
s = '\u2166'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = Ⅶ
# isdecimal: False
# isdigit: False
# isnumeric: True
s = '一二三四五六七八九〇'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 一二三四五六七八九〇
# isdecimal: False
# isdigit: False
# isnumeric: True
s = '壱億参阡萬'
print('s =', s)
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = 壱億参阡萬
# isdecimal: False
# isdigit: False
# isnumeric: True
កំណត់ថាតើខ្សែអក្សរជាអក្សរក្រមឬអត់:str.isalpha()
នៅក្នុង isalpha() លក្ខណៈទូទៅនៃប្រភេទយូនីកូដដែលមានមួយខាងក្រោមគឺពិត។
Lm
Lt
Lu
Ll
Lo
អក្ខរក្រមអក្សរចិនជាដើមនឹងជាការពិត។
s = 'abc'
print('s =', s)
print('isalpha:', s.isalpha())
# s = abc
# isalpha: True
s = '漢字'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 漢字
# isalpha: True
លេខអារ៉ាប់មិនពិត ប៉ុន្តែលេខចិនគឺពិត ព្រោះវាក៏ជាអក្សរចិនផងដែរ។ ទោះយ៉ាងណាក៏ដោយ លេខសូន្យនៅក្នុងលេខចិនគឺមិនពិត។
s = '1234567890'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 1234567890
# isalpha: False
s = '1234567890'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 1234567890
# isalpha: False
s = '一二三四五六七八九'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 一二三四五六七八九
# isalpha: True
s = '壱億参阡萬'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 壱億参阡萬
# isalpha: True
s = '〇'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 〇
# isalpha: False
លេខរ៉ូម៉ាំងមិនពិត។
s = '\u2166'
print('s =', s)
print('isalpha:', s.isalpha())
# s = Ⅶ
# isalpha: False
កំណត់ថាតើខ្សែអក្សរជាអក្សរក្រមលេខ:str.isalnum()
នៅក្នុង isalnum() វាជាការពិត ប្រសិនបើតួអក្សរនីមួយៗពិតនៅក្នុងវិធីណាមួយខាងក្រោមដែលបានរាយបញ្ជីរហូតមកដល់ពេលនេះ។
isdecimal()
isdigit()
isnumeric()
isalpha()
តួអក្សរនីមួយៗត្រូវបានវាយតម្លៃជាលក្ខណៈបុគ្គល ដូច្នេះខ្សែអក្សរដែលមានអក្សរ និងលេខនឹងពិតនៅក្នុង isalnum() ទោះបីជាមិនពិតក្នុងវិធីសាស្រ្តផ្សេងទៀតទាំងអស់ក៏ដោយ។
s = 'abc123'
print('s =', s)
print('isalnum:', s.isalnum())
print('isalpha:', s.isalpha())
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
# s = abc123
# isalnum: True
# isalpha: False
# isdecimal: False
# isdigit: False
# isnumeric: False
កំណត់ថាតើខ្សែអក្សរគឺជាតួអក្សរ ASCII:str.isascii()
Python 3.7 បានបន្ថែម isascii()។ វាត្រឡប់ពិតប្រសិនបើតួអក្សរទាំងអស់នៅក្នុងខ្សែអក្សរគឺជាតួអក្សរ ASCII ។
បន្ថែមពីលើលេខ និងអក្សរ និមិត្តសញ្ញាដូចជា + និង – ក៏ជាការពិតផងដែរ។
s = 'abc123+-,.&'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = abc123+-,.&
# isascii: True
# isalnum: False
ហ៊ីរ៉ាហ្គាណាដែលមិនមែនជា ASCII និងតួអក្សរផ្សេងទៀតគឺមិនពិត។
s = 'あいうえお'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = あいうえお
# isascii: False
# isalnum: True
ដូចដែលយើងនឹងឃើញបន្ទាប់ មិនដូចវិធីសាស្ត្រផ្សេងទៀតទេ isascii() ត្រឡប់ពិត សូម្បីតែសម្រាប់ខ្សែអក្សរទទេក៏ដោយ។
ការវិនិច្ឆ័យនៃខ្សែអក្សរទទេ
ខ្សែអក្សរទទេគឺពិតសម្រាប់ isascii() ហើយមិនពិតសម្រាប់វិធីសាស្រ្តផ្សេងទៀត។
s = ''
print('s =', s)
print('isalnum:', s.isalnum())
print('isalpha:', s.isalpha())
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
print('isascii:', s.isascii())
# s =
# isalnum: False
# isalpha: False
# isdecimal: False
# isdigit: False
# isnumeric: False
# isascii: True
ប្រើ bool() ដើម្បីកំណត់ថាតើវាជាខ្សែអក្សរទទេឬអត់។ តម្លៃត្រឡប់គឺមិនពិតសម្រាប់ខ្សែអក្សរទទេ ហើយពិតបើមិនដូច្នេះទេ។
print(bool(''))
# False
print(bool('abc123'))
# True
កំណត់ថាតើខ្សែអក្សរអាចត្រូវបានបំលែងទៅជាលេខ
ខ្សែអក្សរតម្លៃអវិជ្ជមាន ឬប្រភាគមានចន្លោះ ឬសញ្ញាដក។ ដូច្នេះ លទ្ធផលគឺមិនពិតសម្រាប់វិធីសាស្រ្តទាំងអស់ លើកលែងតែ isascii()។
ទោះបីជាពិតសម្រាប់ isascii() វាមិនស័ក្តិសមសម្រាប់ការកំណត់ថាតើខ្សែអក្សរអាចត្រូវបានបំប្លែងទៅជាតម្លៃលេខ ព្រោះវាជាការពិត ទោះបីជាវាមាននិមិត្តសញ្ញាផ្សេងទៀត ឬតួអក្សរអក្ខរក្រមក៏ដោយ។
s = '-1.23'
print('s =', s)
print('isalnum:', s.isalnum())
print('isalpha:', s.isalpha())
print('isdecimal:', s.isdecimal())
print('isdigit:', s.isdigit())
print('isnumeric:', s.isnumeric())
print('isascii:', s.isascii())
# s = -1.23
# isalnum: False
# isalpha: False
# isdecimal: False
# isdigit: False
# isnumeric: False
# isascii: True
ខ្សែអក្សរអាចត្រូវបានបំប្លែងទៅជាលេខចំនុចអណ្តែតដោយប្រើ float()។ កំហុសសម្រាប់ខ្សែអក្សរដែលមិនអាចបំប្លែងបាន។
print(float('-1.23'))
# -1.23
print(type(float('-1.23')))
# <class 'float'>
# print(float('abc'))
# ValueError: could not convert string to float: 'abc'
ជាមួយការដោះស្រាយករណីលើកលែង មុខងារមួយអាចត្រូវបានកំណត់ថាត្រឡប់ពិត នៅពេលដែលខ្សែអក្សរអាចត្រូវបានបំប្លែងដោយ float()។
def is_num(s):
try:
float(s)
except ValueError:
return False
else:
return True
print(is_num('123'))
# True
print(is_num('-1.23'))
# True
print(is_num('+1.23e10'))
# True
print(is_num('abc'))
# False
print(is_num('10,000,000'))
# False
ប្រសិនបើអ្នកចង់កំណត់ថាលេខដែលបំបែកដោយសញ្ញាក្បៀសក៏ពិតដែរ សូមប្រើជំនួស() ដើម្បីលុបសញ្ញាក្បៀស (ជំនួសវាដោយខ្សែអក្សរទទេ)។
def is_num_delimiter(s):
try:
float(s.replace(',', ''))
except ValueError:
return False
else:
return True
print(is_num_delimiter('10,000,000'))
# True
ប្រសិនបើអ្នកចង់គាំទ្រការកំណត់ដកឃ្លា អ្នកអាចប្រើជំនួស() បន្ថែមទៀត។
def is_num_delimiter2(s):
try:
float(s.replace(',', '').replace(' ', ''))
except ValueError:
return False
else:
return True
print(is_num_delimiter2('10,000,000'))
# True
print(is_num_delimiter2('10 000 000'))
# True