Python String isdecimal() Methods
The isdecimal()
method returns True if all characters in a string are decimal characters. If not, it returns False.
Decimal characters are those that can be used to form numbers in base 10. All the Unicode General Category 'Nd' are considered as decimal characters.
Syntax:
str.isdecimal()
Parametrs:
None.
Return Value:
Returns True if all characters in the string are decimals; otherwise returns False even if one character is not decimal.
The following examples demonstrate isdecimal()
method.
numstr = '12345'
print(numstr.isdecimal()) # returns True
numstr = '10.50'
print(numstr.isdecimal()) # returns False
alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False
mystr = 'Python'
print(mystr.isdecimal()) # returns False
True
False
False
False
The isdecimal()
method will return False if a string contains whitespaces, symbols or alphabets.
amount = '$100'
print(amount.isdecimal())
code = '#007'
print(mystr.isdecimal())
False
False
All the characters under Unicode General Category 'Nd' are decimals e.g. isdecimal()
returns True for the Arabic decimal two is ٢
decimal.
arabicdecimal = '٢' # 2 in Arabic
print(arabicdecimal.isdecimal())
True
Superscript and subscripts (usually written using unicode) are considered digit characters and not decimal. Hence, if the string contains these characters along with decimal characters, isdecimal()
returns False.
mystr = '\u00B23455' # returns subscript 2 with the number 3455
print(mystr.isdecimal())
mystr = '\u2156' # Unicode chars of ⅖
print(mystr.isdecimal())
mystr = '\u0032' # Unicode chars of 2
print(mystr.isdecimal())
False
False
True
The following table lists difference among the isdecimal()
, isdigit(), and isnumeric() methods based on the given inputs:
Input String Value | isdecimal() | isdigit() | isnumeric() |
---|---|---|---|
'123' | True | True | True |
'$123' | False | False | False |
'123.50' | False | False | False |
'123a' | False | False | False |
'¾' | False | False | True |
'\u0034' | True | True | True |