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

由于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)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,730评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,473评论 18 399
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,320评论 0 10
  • 世界上只有一种真正的英雄主义,那就是在认清生活的真相后依然热爱生活。
    看清后依然热爱生活的人阅读 1,153评论 0 0
  • 生活总是像过山车一样,给你递过来一颗糖,然后再给你扇一巴掌。从来没有人生活得容易,那些活得光鲜的人从来都用了洪荒之...
    小小小小米77阅读 4,039评论 0 1

友情链接更多精彩内容