# Python isdecimal() method

The Python `isdecimal()` method checks whether a string contains only decimal characters. This method exists only for unicode objects.

Note

Define a decimal string, just add the 'u' prefix to the string.

Related course: Complete Python Programming Course & Exercises

## grammatical

isdecimal() method syntax.

``````str.isdecimal()
``````

parameters

• none

return value

Returns True if the string contains only decimal characters, and False if it does not.

## example

The following example shows the use of the isdecimal() function.

``````str = u "this2009"
print (str.isdecimal())

str = u "23443434"
print (str.isdecimal())
``````

The output of the above example is as follows.

``````False
True
``````

## isdecimal, isdigit, isnumeric

The three string methods, isdecimal, isdigit, and isnumeric, are all used to determine whether a string is a number, so why use three methods? What are their differences within?

• `isdecimal()`: whether or not it is a decimal digit

• `isdigit()`: whether or not it is a digital character

• `isnumeric()`: whether all characters are numeric

We define a function to perform the verification.

``````def isnumber(s):
print(s+' isdigit: ',s.isdigit())
print(s+' isdecimal: ',s.isdecimal())
print(s+' isnumeric: ',s.isnumeric())
``````

Or in Python 3 f-string style:

``````def isnumber(s):
print(f'{s} isnumeric {s.isnumeric()}')
print(f'{s} isdecimal {s.isdecimal()}')
print(f'{s} isdigit {s.isdigit()}')
``````

So you can call:

``````>>> isnumber('123')
123 isnumeric True
123 isdecimal True
123 isdigit True
>>>
>>> isnumber('123.0')
123.0 isnumeric False
123.0 isdecimal False
123.0 isdigit False
>>>
>>> isnumber('II-III')
II-III isnumeric False
II-III isdecimal False
II-III isdigit False
>>>
``````

For unicode values:

``````>>> isnumber("\u0030") # unicode for 0
0 isnumeric True
0 isdecimal True
0 isdigit True

>>> isnumber("\u00B2") # unicode fo &sup2;
² isnumeric True
² isdecimal False
² isdigit True
>>>
``````