python 判断字符串是否为整数、小数或布尔值

该博客介绍了Python中用于检查字符串是否为整数、小数或布尔值的函数。通过检查小数点、数字和负号来确定字符串类型,并在不是整数或小数时进一步检查是否为布尔值。该函数可用于配置文件的解析,将字符串转化为对应的Python数据类型。
摘要由CSDN通过智能技术生成
def check_value(value):
    """判断字符串是否为整数、小数或bool值

    参数:value为字符串
    返回:如果是整数、小数或bool值,则返回相应类型,否则返回字符串类型
    """
    if value.count(".") != 1:  # 非小数
        if value.isdigit():  # 判断是否为正整数
            return int(value)
        elif value.count("-") == 1 and value.startswith("-"):  # 判断是否为负整数
            num = value.split("-")[-1]
            if num.isdigit():
                return int(value)
            else:
                return check_bool(value)
        else:
            return check_bool(value)
    else:  # 可能为小数
        left = value.split(".")[0]
        right = value.split(".")[1]
        if right.isdigit():
            if left.isdigit():  # 是否为正小数
                return float(value)
            elif left.count("-") == 1 and left.startswith("-"):  # 是否为负小数
                left_num = left.split("-")[-1]
                if left_num.isdigit():
                    return float(value)
                else:
                    return check_bool(value)
            else:
                return check_bool(value)
        else:
            return check_bool(value)


def check_bool(value):
    """判断字符串是否为bool值

    参数:value为字符串
    返回:如果是true/false, on/off(不区分大小写),则返回True, False,否则返回字符串类型
    """
    if value.title() in ("True", "On"):  # title()函数将字符串的首字母大写,其余字母全小写
        return True
    elif value.title() in ("False", "Off"):
        return False
    else:
        return value

大致思路:

1、根据小数点判断是否为小数

2、判断小数点两边的是否为整数(需考虑负号的情况)

3、注意:isdigit() 方法只能判断正整数,不能判断负整数,所以需要额外判断一下负整数的情况。

4、如果需要返回非整数、小数的字符串,就要像上面那样补全else的return,否则会出现漏掉一些字符串的情况,导致一些字符串输出为None

5、可以直接使用,调用check_value()函数即可,参数为字符串。

6、我自己用这个函数把 ini 的配置文件全部转化为Python 字典。

参考文章:

python判断字符串是否为小数的方法-Python学习网

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值