Python String isdigit() Method

The isdigit() method checks if all characters in a string are digits.

Syntax

string.isdigit()

Parameters

No Parameters.

Return Value

Returns True if all characters in a string are digits. Unicode digit characters such as superscripts and subscripts are also considered digits.

Retruns False if any character in a string is not a digit, or if the string is empty.

What Counts as Digits?

The isdigit() method considers the following as digits:

  • Digits (0-9)
  • Superscripts and subscripts (¹, ₂)
  • Digits from other scripts (Arabic: ٢, Devanagari: २)

The isdigit() method does not recognize the following characters as digits:

  • Fractions (e.g., ½, ¾)
  • Roman numerals (e.g., Ⅻ)
  • Most numeric symbols that aren’t classified as “digit” characters in Unicode.

Example

Check if a String is a Digit

print("123".isdigit())    # True
print("\u0035".isdigit()) # True (Unicode for 5)
print("²".isdigit())      # True (Superscript digit)
print("₃".isdigit())      # True (Subscript digit)
print('٢'.isdigit())      # True (2 in Arabic)
print("123.4".isdigit())  # False (contains decimal point)
print("123abc".isdigit()) # False (contains letters)
print("-123".isdigit())   # False (contains negative sign)
print("½".isdigit())      # False (Fractions)

isdigit() vs isnumeric()

Both isdigit() and isnumeric() are used to check if characters in a string are numeric, but they have important differences in what they consider “numeric”.

Character Typeisdigit()isnumeric()
Basic Digits (0-9)TrueTrue
Arabic Digits E.g., ٢ (2 in Arabic)TrueTrue
Devnagari Digits e.g. १२ (12 in Devnagari)TrueTrue
Superscripts (², ³)TrueTrue
Subscripts (₁, ₂)
TrueTrue
Fractions (½, ¾)FalseTrue
Roman Numerals (Ⅷ, Ⅻ)FalseTrue
Floating Point Numbers (1.5)FalseFalse
Negative Numbers (-5)FalseFalse
Empty String ("")FalseFalse