Python nyedhiyakake sawetara cara senar kanggo nemtokake lan mriksa apa jinis senar iku numerik utawa alfabet.
Saben cara diterangake kanthi kode sampel.
- Nemtokake manawa string minangka digit desimal:
str.isdecimal()
- Nemtokake yen senar minangka nomer:
str.isdigit()
- Nemtokake apa string minangka karakter sing makili nomer:
str.isnumeric()
- Nemtokake yen string iku alfabet:
str.isalpha()
- Temtokake yen string iku alfanumerik:
str.isalnum()
- Nemtokake apa strings minangka karakter ASCII:
str.isascii()
- Paukuman saka string kosong
- Nemtokake yen strings bisa diowahi dadi angka
Kanggo cara liyane saka isascii (), senar sing ngemot senar kosong, simbol ing ngisor iki, etc., palsu.
,
.
-
-1.23, etc., minangka nilai numerik diterangake ing mburi bagean iki.
Ekspresi reguler bisa digunakake kanggo nemtokake jinis karakter kanthi luwih fleksibel lan ngekstrak jinis karakter sing cocog.
Deleng artikel ing ngisor iki kanggo informasi luwih lengkap babagan carane nemtokake ing ngisor iki
- Cara ngowahi string numerik (str) dadi angka (int, float)
- Carane nemtokake huruf gedhe lan cilik
- RELATED:Ngonversi senar nomer menyang angka ing Python
- RELATED:Dhaptar cara senar kanggo ngapusi cilik ing Python
- Nemtokake manawa string minangka digit desimal:str.isdecimal()
- Nemtokake yen senar minangka nomer:str.isdigit()
- Nemtokake apa string minangka karakter sing makili nomer:str.isnumeric()
- Nemtokake yen string iku alfabet:str.isalpha()
- Temtokake yen string iku alfanumerik:str.isalnum()
- Nemtokake apa strings minangka karakter ASCII:str.isascii()
- Paukuman saka string kosong
- Nemtokake yen strings bisa diowahi dadi angka
Nemtokake manawa string minangka digit desimal:str.isdecimal()
Ing isdecimal (), bener yen kabeh karakter minangka digit desimal, yaiku karakter ing kategori umum Nd Unicode. Iki uga bener kanggo angka Arab lengkap, lsp.
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
Yen ngemot simbol kayata tandha minus utawa titik, iku palsu. Contone, yen sampeyan pengin nemtokake manawa senar kayata ‘-1.23’ minangka nilai numerik, sampeyan bisa nggunakake pangecualian penanganan. Iki diterangake ing pungkasan bagean iki.
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
Nemtokake yen senar minangka nomer:str.isdigit()
Ing isdigit (), saliyane nomer sing bener ing isdecimal (), angka sing Unicode property Nilai Numeric_Type iku Digit utawa Decimal uga bener.
Contone, nomer superscript makili kothak palsu ing isdecimal () nanging bener ing isdigit ().
- nomer superscript makili kothak
- ²
- \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
Nemtokake apa string minangka karakter sing makili nomer:str.isnumeric()
Ing isnumeric (), saliyane kanggo nomer sing bener ing isdigit (), angka sing Unicode property Nilai Numeric_Type iku Numeric uga bener.
Pecahan, angka Romawi, lan angka Cina uga bener.
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
Nemtokake yen string iku alfabet:str.isalpha()
Ing isalpha (), properti kategori umum Unicode karo salah siji saka ing ngisor iki bener.
Lm
Lt
Lu
Ll
Lo
Alfabet, aksara Cina, lan sapiturute bakal bener.
s = 'abc'
print('s =', s)
print('isalpha:', s.isalpha())
# s = abc
# isalpha: True
s = '漢字'
print('s =', s)
print('isalpha:', s.isalpha())
# s = 漢字
# isalpha: True
Angka Arab iku palsu, nanging angka Cina bener amarga uga aksara Cina; Nanging, nul ing angka Cina iku palsu.
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
Angka Romawi palsu.
s = '\u2166'
print('s =', s)
print('isalpha:', s.isalpha())
# s = Ⅶ
# isalpha: False
Temtokake yen string iku alfanumerik:str.isalnum()
Ing isalnum (), iku bener yen saben karakter bener ing samubarang cara ing ngisor iki kadhaptar supaya adoh.
isdecimal()
isdigit()
isnumeric()
isalpha()
Saben karakter dievaluasi kanthi individu, supaya string sing ngemot huruf lan angka bakal bener ing isalnum () sanajan palsu ing kabeh cara liyane.
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
Nemtokake apa strings minangka karakter ASCII:str.isascii()
Python 3.7 ditambahake isascii (). Ngasilake bener yen kabeh karakter ing senar iku karakter ASCII.
Saliyane angka lan aksara, simbol kayata + lan – uga bener.
s = 'abc123+-,.&'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = abc123+-,.&
# isascii: True
# isalnum: False
Hiragana non-ASCII lan karakter liyane palsu.
s = 'あいうえお'
print('s =', s)
print('isascii:', s.isascii())
print('isalnum:', s.isalnum())
# s = あいうえお
# isascii: False
# isalnum: True
Kaya sing bakal kita deleng sabanjure, ora kaya metode liyane, isascii () ngasilake bener sanajan kanggo senar kosong.
Paukuman saka string kosong
String kosong bener kanggo isascii () lan palsu kanggo metode liyane.
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
Gunakake bool () kanggo nemtokake yen iku string kosong. Nilai bali palsu kanggo senar kosong lan bener.
print(bool(''))
# False
print(bool('abc123'))
# True
Nemtokake yen strings bisa diowahi dadi angka
String nilai negatif utawa pecahan ngemot titik utawa tandha minus. Mulane, asil palsu kanggo kabeh cara kajaba isascii ().
Senajan bener kanggo isascii (), iku ora cocok kanggo nemtokake apa senar bisa diowahi menyang Nilai numerik, awit iku bener malah yen ngandhut simbol liyane utawa karakter alfabet.
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
Strings bisa diowahi kanggo angka floating titik karo float (). Kesalahan kanggo senar sing ora bisa diowahi.
print(float('-1.23'))
# -1.23
print(type(float('-1.23')))
# <class 'float'>
# print(float('abc'))
# ValueError: could not convert string to float: 'abc'
Kanthi penanganan istiméwa, fungsi bisa ditetepake sing bali bener nalika senar bisa diowahi karo 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
Yen sampeyan pengin nemtokake manawa nomer sing dipisahake koma uga bener, gunakake ngganti () kanggo mbusak koma (ngganti nganggo string kosong).
def is_num_delimiter(s):
try:
float(s.replace(',', ''))
except ValueError:
return False
else:
return True
print(is_num_delimiter('10,000,000'))
# True
Yen sampeyan pengin ndhukung delimitasi spasi putih, sampeyan bisa nggunakake ngganti () luwih.
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