Summary: In this Python tutorial, we will learn different ways to check if a given string is actually an integer.

For example, “123” is of type string but the value is actually an integer.

There are many ways to test this in Python. Let’s see each of them one by one.

Method 1: Using int()

In this method, we try to attempt to cast the string into an integer using the inbuilt int() method.

If the string is not an integer then the Python will throw the ValueError otherwise not.

def is_integer(n):
        return True
    except ValueError:
        return False

is_integer("456")  #returns True
is_integer("-456") #returns True
is_integer("p456") #returns False

Method 2: Using isdigit()

The isdigit() method, when used on a string, returns true if all the characters in the string are digits and otherwise false.

"123".isdigit()  #return True
"-123".isdigit() #return False

The drawback of the isdigit() method is that it can only testify the non-negative integers. It is so because it interprets ‘-‘ as a special character.

Method 3: Using isnumeric()

The isnumeric() is another method similar to isdigit() checks whether a string is a number.

The advantage of this method over isdigit() is that it works both for negative and positive integers.

"879".isnumeric()      #return True
"-44".isnumeric()      #return False
"pencil7".isnumeric()  #return False

I hope now you can easily check for numbers in a python string. If you have any doubts or suggestions then comment below.

Leave a Reply