# Is Numeric

Write a function is_numeric that receives a parameter and returns True if it's numeric (it is, an int or a float). Examples:

is_numeric(10)  # True, it's an int
is_numeric('10')  # False, it's a string

is_numeric(0.1)  # True, it's a float
is_numeric('0.5')  # False, it's a string

is_numeric(True)  # False! It's a boolean, *SEE NOTES BELOW*
is_numeric(False)  # False! It's a boolean, *SEE NOTES BELOW*

Booleans in python are tricky. For example, if you check if True (a boolean) "is an instance of int" using the isinstance function, the answer will be True. That means that booleans are instances of integers, it's a "subtype". Examples:

# Boolean values are subtypes of ints
isinstance(True, int)  # True
isinstance(False, int)  # True

Don't worry too much about this. In these cases it's recommended to use the type function instead. type of a boolean value will return bool:

type(True)  # bool
type(False)  # bool
type(10)  # int
type(0.5)  # float

### Test Cases

test with boolean -

def test_with_boolean():
assert is_numeric(True) == False


test with float -

def test_with_float():
assert is_numeric(0.8) == True


test with integer -

def test_with_integer():
assert is_numeric(22) == True


test with string -

def test_with_string():
assert is_numeric('Hello World') == False


Solution 1

def is_numeric(a_number):
if type(a_number) == int or type(a_number) == float:
return True

return False

def is_numeric(a_number): pass