Search code examples
pythonstringintegerconverters

How can I check if a string has a numeric value in it in Python?


For example, I want to check a string and if it is not convertible to integer(with int()), how can I detect that?


Solution

  • Use the .isdigit() method:

    >>> '123'.isdigit()
    True
    >>> '1a23'.isdigit()
    False
    

    Quoting the documentation:

    Return true if all characters in the string are digits and there is at least one character, false otherwise.

    For unicode strings or Python 3 strings, you'll need to use a more precise definition and use the unicode.isdecimal() / str.isdecimal() instead; not all Unicode digits are interpretable as decimal numbers. U+00B2 SUPERSCRIPT 2 is a digit, but not a decimal, for example.