判断字符串是否为一个小数的方法

        本文是一篇个人随笔,主要是介绍下如何用python判断一个字符串是否为小数,如有纰漏或粗浅,还请各位看官见谅。

        我们知道python中有专门的函数来判断一个字符串是否为整数(isdigit()),但是没有相应的函数对是否为小数进行判断,网上也有很多人写过类似的函数,但是大部分显得比较笨重,代码量大,逻辑复杂,我在学习正则表达式的时候觉得用正则表达式是最简单方便易懂的,废话不多说,请看代码:

#判断字符串是否为小数(只针对小数)
def is_little_number(str):
    #获取字符串中符合小数规则的所有子字符串的长度(如果该字符串是小数,那么长度只能是1)
    number_count = len(re.findall(r'\d+\.{1}\d*', str))
    #判断上述获取的长度是否非1,等于0表示字符串中无小数结构的子串,大于1表示不止一个目标子串
    #显然这两种情况下字符串肯定不是小数,所以返回False
    if number_count == 0 or number_count > 1:
        return False
    #如果上述长度等于1,说明该字符串可能是小数,也可能是包含小数以及其它字符的混合字符串
    #用从中匹配出的小数字符串和原字符串对比,如果完全一致,表示原字符串就是小数,否则不是,
    elif number_count == 1:
        mumber_str = re.findall(r'\d+\.{1}\d*', str)[0]
        if mumber_str == str:
            return True
        else:
            return False
    #只有以上一种情况下才能是小数,所以除此之外的所有情况都不是,故返回False
    else:
        return False

        说明一下,该函数只针对小数判断,因为整数已经有特定函数,故此处只负责小数判断,思路和详解在代码中已比较详细,在此 不再赘述,如果大家有更简单高效的思路或者本文有不当之处欢迎留言,谢谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值