如何去判断字符串能否转换为浮点数

img


不知道怎么去判断当e出现时例如010e-1也可以转换成浮点数,只会判断算是数字或者全都是字母之类的

import re

# 方法1
_float_regexp = re.compile(r"^[-+]?(?:\b[0-9]+(?:\.[0-9]*)?|\.[0-9]+\b)(?:[eE][-+]?[0-9]+\b)?$").match
def is_float_re(string):
    return True if _float_regexp(string) else False

# 方法二
def is_float_type(string):
    try:
        if isinstance(eval(string), (float, int)):
            return True
        return False
    except:
        return False


while True:
    string = input("请输入一个数字:")

    print(is_float_re(string))
    print(is_float_type(string))