import re


def isfloat(value):
    """
    Return whether or not given value is a float.
    This does not give the same answer as::

        isinstance(num_value,float)

    Because isfloat('1') returns true.  More strict typing requirements may want
    to use is_instance.

    If the value is a float, this function returns ``True``, otherwise ``False``.

    Examples::

        >>> isfloat('01.123')
        True

        >>> isfloat('+1f')
        False

    :param value: string to validate float
    """
    floating = re.compile(r"^(?:[-+]?(?:[0-9]+))?(?:\.[0-9]*)?(?:[eE][+\-]?(?:[0-9]+))?$")
    return value != '' and bool(floating.match(value))