Python çend awayên rêzikê peyda dike da ku diyar bike û kontrol bike ka celebek jimare an alfabîkî ye.
Her rêbaz bi koda nimûneyê tê ravekirin.
- Tesbît dike ka rêzik jimareke dehiyê ye yan na:
str.isdecimal()
- Tesbîtkirina ka rêzik hejmar e:
str.isdigit()
- Diyar dike ka rêzik karakterek e ku hejmarek temsîl dike:
str.isnumeric()
- Diyar dike ka rêzik alfabe ye:
str.isalpha()
- Tesbît bikin ka rêzik alfanjimar e:
str.isalnum()
- Diyar dike ka rêzik tîpên ASCII ne:
str.isascii()
- Darizandina têl vala
- Tesbît bikin ka rêzik dikarin bibin jimare
Ji bo rêbazên ji bilî isascii(), rêzika ku tê de rêzek vala, sembolên jêrîn, hwd., xelet e.
,
.
-
-1.23 û hwd., wekî nirxek jimarî di dawiya vê beşê de tê ravekirin.
Vebêjên birêkûpêk dikarin werin bikar anîn da ku celebên karakteran bi nermîtir diyar bikin û celebên karakterên têkildar derxînin.
Ji bo bêtir agahdarî li ser ka meriv çawa li jêr diyar dike li gotara jêrîn binêre
- Meriv çawa rêzek hejmarî (str) vediguheze hejmarek (int, float)
- Meriv çawa tîpên jorîn û jêrîn diyar dike
- TÊKIRIN:Veguheztina rêzikek hejmaran di Python de ji bo nirxên hejmarî
- TÊKIRIN:Navnîşa rêbazên rêzikê yên ji bo manîpulekirina dozê di Python de
- Tesbît dike ka rêzik jimareke dehiyê ye yan na:str.isdecimal()
- Tesbîtkirina ka rêzik hejmar e:str.isdigit()
- Diyar dike ka rêzik karakterek e ku hejmarek temsîl dike:str.isnumeric()
- Diyar dike ka rêzik alfabe ye:str.isalpha()
- Tesbît bikin ka rêzik alfanjimar e:str.isalnum()
- Diyar dike ka rêzik tîpên ASCII ne:str.isascii()
- Darizandina têl vala
- Tesbît bikin ka rêzik dikarin bibin jimare
Tesbît dike ka rêzik jimareke dehiyê ye yan na:str.isdecimal()
Di isdecimal(), rast e ger hemî tîp jimareyên dehiyê bin, ango tîpên di kategoriya giştî ya Nd ya Unicode de bin. Her weha ji bo jimareyên erebî yên tev-fireh û hwd jî rast e.
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
Ger sembolek wekî nîşanek kêm an xalek hebe, ew xelet e. Mînakî, heke hûn dixwazin diyar bikin ku rêzek wekî ‘-1.23’ nirxek hejmarî ye, hûn dikarin karanîna îstîsna bikar bînin. Ev di dawiya vê beşê de tê ravekirin.
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
Tesbîtkirina ka rêzik hejmar e:str.isdigit()
Di isdigit() de ji bilî jimarên ku di isdecimal() de rast in, jimareyên ku nirxa taybetiya Unicode ya Numeric_Type Reqedar an Dehanî ye jî rast in.
Mînakî, jimareyek sernivîsa ku çargoşeyekê temsîl dike di îstîmal() de xelet e lê di isdigit() de rast e.
- hejmara sernivîsê ku çargoşe temsîl dike
- ²
- \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
Diyar dike ka rêzik karakterek e ku hejmarek temsîl dike:str.isnumeric()
Di isnumeric() de ji bilî hejmarên ku di isdigit() de rast in, hejmarên ku nirxa taybetiya Unicode ya Numeric_Type Hejmarî ye jî rast in.
Fraksiyon, jimareyên romî û jimareyên çînî jî rast in.
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
Diyar dike ka rêzik alfabe ye:str.isalpha()
Di isalpha (), taybetmendiyek kategoriya giştî ya Unicode ya ku yek ji jêrîn rast e.
Lm
Lt
Lu
Ll
Lo
Alfabe, tîpên çînî û hwd wê rast bin.
s = 'abc'
print('s =', s)
print('isalpha:', s.isalpha())
# s = abc
# isalpha: True
s = '漢字'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 漢字
# isalpha: True
Jimarên erebî derew in, lê jimareyên çînî rast in ji ber ku ew jî tîpên çînî ne; lebê, sifir di jimareyên Chinese derew in.
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
Jimarên romî derew in.
s = '\u2166'
print('s =', s)
print('isalpha:', s.isalpha())
# s = Ⅶ
# isalpha: False
Tesbît bikin ka rêzik alfanjimar e:str.isalnum()
Di isalnum(), rast e heke her karakter di yek ji wan rêbazên jêrîn ên ku heya nuha hatine navnîş kirin de rast be.
isdecimal()
isdigit()
isnumeric()
isalpha()
Her karekterek kesane tê nirxandin, ji ber vê yekê rêzikek ku tîp û jimar tê de hene dê di isalnum() de rast be jî di hemî rêbazên din de xelet be.
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
Diyar dike ka rêzik tîpên ASCII ne:str.isascii()
Python 3.7 isascii (). Ger hemî tîpên di rêzikê de tîpên ASCII bin, ew rast vedigere.
Ji bilî hejmar û tîpan, nîşaneyên wekî + û – jî rast in.
s = 'abc123+-,.&'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = abc123+-,.&
# isascii: True
# isalnum: False
Hiragana ne-ASCII û karakterên din derew in.
s = 'あいうえお'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = あいうえお
# isascii: False
# isalnum: True
Wekî ku em ê paşê bibînin, berevajî rêbazên din, isascii () ji bo rêzek vala jî rast vedigere.
Darizandina têl vala
Rêzikek vala ji bo isascii() rast e û ji bo rêbazên din jî xelet e.
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() bikar bînin da ku diyar bikin ka ew rêzek vala ye. Nirxa vegerê ji bo rêzek vala derew e û wekî din rast e.
print(bool(''))
# False
print(bool('abc123'))
# True
Tesbît bikin ka rêzik dikarin bibin jimare
Rêzên nirxê negatîf an fraksîyonî deman an jî nîşanên kêmbûnê dihewîne. Ji ber vê yekê, encam ji bo hemî rêbazan ji bilî isascii ().
Her çend ji bo isascii(-ê) rast be jî, ji bo destnîşankirina ka rêzik dikare bibe nirxek jimareyî ne guncaw e, ji ber ku rast e her çend sembolên din an tîpên alfabîkî jî hebin.
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
Rêz dikarin bi float(-ê) veguhezînin hejmarên xala herikandinê. Çewtiya ji bo rêzikên ku nayên veguherandin.
print(float('-1.23'))
# -1.23
print(type(float('-1.23')))
# <class 'float'>
# print(float('abc'))
# ValueError: could not convert string to float: 'abc'
Digel destwerdana îstîsnayan, fonksiyonek dikare were destnîşan kirin ku dema ku rêzek bi float() were veguheztin rast vedigere.
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
Heke hûn dixwazin diyar bikin ku jimareyek ji hev veqetandî jî rast e, şûna () bikar bînin da ku girseyê jê bikin (li şûna wê bi rêzek vala veguherînin).
def is_num_delimiter(s):
try:
float(s.replace(',', ''))
except ValueError:
return False
else:
return True
print(is_num_delimiter('10,000,000'))
# True
Heke hûn dixwazin dabeşkirina cîhê spî piştgirî bikin, hûn dikarin şûna () bêtir bikar bînin.
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