When we talk about Numbers in Python, they are either integers or floats. The integers are zero, positive, or negative numbers without a fractional part. Floats represent real numbers written with a decimal point dividing the integer and fractional parts. Other than these types of values, we can not consider them as Numbers.
Python check if Number
- Using type() function with equality operator(==).
- Using string isnumeric() method.
- Using numbers.Number() method.
To check if a variable is a Number in Python, use the type() function and compare its result with either int or float types to get the boolean value. If it returns True, then it is a Number. Otherwise, it is not a Number.
The type() is a built-in Python function that returns the type of the argument we pass to it.
int_num = 11
float_num = 1.9
str_num = "KB"
print(type(int_num))
print(type(float_num))
print(type(str_num))
if type(int_num) == int or type(int_num) == float:
print("int or float")
else:
print('The variable is not a number')
if type(float_num) == int or type(float_num) == float:
print("int or float")
else:
print('The variable is not a number')
if type(str_num) == int or type(str_num) == float:
print("int or float")
else:
print('The variable is not a number')
Output
<class 'int'>
<class 'float'>
<class 'str'>
int or float
int or float
The variable is not a number
In this example, we declared three types of variables.
- Integer
- Float
- String
Using the type() function, we get the data type of the variables.
Then using the if..else statement, we are comparing data type of variables with either int or float, and if it matches, that means it is a number; otherwise, they are not numbers.
Using an equality operator(==), we checked if both values are the same or not, and if it does, then it is a Number; otherwise, it is not.
Using String isnumeric() method
The string isnumeric() is a built-in method that returns True if all the characters are numeric (0-9), otherwise False. Exponents are also considered numeric values, but negative integers or float values are not considered Numbers. So, if you want to check integers, you can use this method. Otherwise, the above approach will be more helpful.
aa = "\u0040"
bb = "\u00B2"
cc = "10km2"
dd = "-19"
ee = "2.1"
print(aa.isnumeric())
print(bb.isnumeric())
print(cc.isnumeric())
print(dd.isnumeric())
print(ee.isnumeric())
Output
False
True
False
False
False
Only the second value is a numeric(0-9) value that passes the test in this example. The other values are not considered numeric by the isnumeric() function.
Using numbers.Number
To work with the numbers module, you need to import it first, and then you can use the Number class. You can test if a variable is an instance of the Number class with the isinstance() function.
import numbers
var = 5
iable = "tring"
print(isinstance(var, numbers.Number))
print(isinstance(iable, numbers.Number))
Output
True
False
As you can see that it returns True for the numeric value and False for the string.
That’s it for this tutorial.
See also

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language. Krunal has experience with various programming languages and technologies, including PHP, Python, and JavaScript. He is comfortable working in front-end and back-end development.