美文网首页
【python】eval()方法二次封装;判断s是否为数字 方法

【python】eval()方法二次封装;判断s是否为数字 方法

作者: GovS_777 | 来源:发表于2018-09-19 01:42 被阅读0次

    由于python自带的eval()处理null,true,false(均为java返回结果)会报异常,故需对该三种情况做特殊处理

    
    # 判断s是否为数字,包括负数 (- 开头),正数(+开头), 小数(带.); 返回True, False
    # 若需进一步判断是正数还是浮点数。则对处理结果在另做处理即可,参见示例
    def is_numeric(s):
        if s.startswith("-") or s.startswith("+") or "." in s:
            return all(c in "0123456789.+-" for c in s)
        else:
            return all(c in "0123456789" for c in s)
    
    
    # eval()方法二次封装
    def eval_str(str_data):
        # eval()对特殊值处理
        null = ""
        true = True
        false = False
        return eval(str_data)
    
    
    # 示例
    sval = 1.111
    if is_numeric(sval):
        if "." in sval:
            sval = float(sval)
        else:
            sval = int(sval)
    
    

    相关文章

      网友评论

          本文标题:【python】eval()方法二次封装;判断s是否为数字 方法

          本文链接:https://www.haomeiwen.com/subject/zzhbnftx.html