Calculate area module I wrote a module that calculates the area of shapes and I wanted to get feedback. Am I on the right track?

import math

# A python program to calculate the area of shapes


# area of a square is length multiplied by width
def area_of_square(length, width):
    _check_if_values_are_strings(length = length, width = width)
    _check_if_values_are_negitive(lenth = length, width = width)

    return length * width

# area of a triangle is base multiplied by height divided by 2
def area_of_triangle(base_value, height):
    _check_if_values_are_strings(base_value = base_value, height = height)
    _check_if_values_are_negitive(base_value = base_value, height = height)

    return (base_value * height) / 2

# area of a circle is radius squared times pi
def area_of_circle(radius):
    _check_if_values_are_strings(radius = radius)
    _check_if_values_are_negitive(radius = radius)

    return math.pow(radius,2) * math.pi


def _check_if_values_are_strings(**values):
    for k,v in values.items():
        if (isinstance(v,str)):
            raise TypeError("{0} is a string".format(k))

def _check_if_values_are_negitive(**values):
    for k,v in values.items():
        if v &lt; 0:
            raise ValueError("{0} is a negitive".format(k))


My main concern is the use of the _check_if_values_are_strings and _check_if_values_are_negitive methods. Am I using them correctly, or is there a better approach to verifying the parameters before preforming the calculation?
A few things:


Squares don't have width and height, those are rectangles
You check to see that your values are not strings, what if they are lists (or other types of objects)?
Your check functions error if their title is true, this is unintuitive. Something like ensure_value_is_positive would be a better name.