पायथन स्ट्रिंग प्रकार संख्यात्मक आहे की वर्णमाला आहे हे निर्धारित करण्यासाठी आणि तपासण्यासाठी अनेक स्ट्रिंग पद्धती प्रदान करते.
प्रत्येक पद्धत नमुना कोडसह स्पष्ट केली आहे.
- स्ट्रिंग दशांश अंक आहे की नाही हे निर्धारित करते:
str.isdecimal()
- स्ट्रिंग ही संख्या आहे की नाही हे निर्धारित करणे:
str.isdigit()
- स्ट्रिंग ही संख्या दर्शविणारा वर्ण आहे की नाही हे निर्धारित करते:
str.isnumeric()
- स्ट्रिंग वर्णमाला आहे की नाही हे निर्धारित करते:
str.isalpha()
- स्ट्रिंग अल्फान्यूमेरिक आहे का ते ठरवा:
str.isalnum()
- स्ट्रिंग्स ASCII वर्ण आहेत की नाही हे निर्धारित करते:
str.isascii()
- रिकाम्या स्ट्रिंगचा निर्णय
- स्ट्रिंगचे संख्यांमध्ये रूपांतर करता येते का ते ठरवा
isascii() व्यतिरिक्त इतर पद्धतींसाठी, रिक्त स्ट्रिंग असलेली स्ट्रिंग, खालील चिन्हे इ. असत्य आहे.
,
.
-
-1.23, इत्यादी, संख्यात्मक मूल्य म्हणून या विभागाच्या शेवटी स्पष्ट केले आहे.
वर्ण प्रकार अधिक लवचिकपणे निर्धारित करण्यासाठी आणि संबंधित वर्ण प्रकार काढण्यासाठी नियमित अभिव्यक्ती वापरली जाऊ शकतात.
खालील कसे ठरवायचे याबद्दल अधिक माहितीसाठी खालील लेख पहा
- अंकीय स्ट्रिंग (str) ला संख्या (int, float) मध्ये रूपांतरित कसे करावे
- अप्पर आणि लोअर केस कसे ठरवायचे
- संबंधित:पायथनमधील संख्यांच्या स्ट्रिंगला संख्यात्मक मूल्यांमध्ये रूपांतरित करणे
- संबंधित:पायथनमध्ये केस हाताळण्यासाठी स्ट्रिंग पद्धतींची सूची
- स्ट्रिंग दशांश अंक आहे की नाही हे निर्धारित करते: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
फ्लोट () सह स्ट्रिंग्स फ्लोटिंग पॉइंट नंबरमध्ये रूपांतरित केले जाऊ शकतात. स्ट्रिंगसाठी एरर जी रूपांतरित केली जाऊ शकत नाही.
print(float('-1.23'))
# -1.23
print(type(float('-1.23')))
# <class 'float'>
# print(float('abc'))
# ValueError: could not convert string to float: 'abc'
अपवाद हाताळणीसह, फंक्शन परिभाषित केले जाऊ शकते जे जेव्हा स्ट्रिंग फ्लोट() सह रूपांतरित केले जाऊ शकते तेव्हा सत्य मिळवते.
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