Python判断字符串是否是数字,大部分特殊字符也能识别

在开发过程中,经常会遇到这样的场景,要判断这个字符串里面是否有我们想要的字符或者是数字,如果我们自己去实现的话或许会比较困难,或者就是效率不高,
其实很多时候我们的开发语言一般都是会封装好一些常用函数的,我们只要去调用就可以了,当然了,我们还可以尝试去了解其实现的原理,方便后面有些情况覆盖不到的话,我们可以重新定义一个这样的方法去扩展我们的功能。

今天呢,给大家分享一个Python自带的方法,非常好用,而且也非常全面

​ python版本:3.9.12
​ 开发工具:PyCharm
​ 操作系统:Windows 11

首先为了方便使用,我们先封装一个方法,然后在方法里面做判断,最后输出这个字符串里面是不是含有数字,具体代码如下

def isNumber(num):
    try:
        if num.isdigit():
           print('isdigit->{}是数字'.format(num))
        else:
            print('isdigit->{}不是数字'.format(num))
    except (TypeError, ValueError):
        pass

    try:
        import unicodedata
        if unicodedata.numeric(num):
            print('numeric->{}是数字'.format(num))
        else:
            print('numeric->{}不是数字'.format(num))
    except (TypeError, ValueError):
        pass

isNumber('1')
isNumber('d')
isNumber('d2')
#isNumber(2)	#这里会报错
isNumber('⑯')
isNumber('⒃')
is_number('⒗')
is_number('Ⅴ')
is_number('Ⅳ')
is_number('❻')
is_number('㈥')
is_number('⅔')
is_number('贰')
is_number('贰')

结果如下

isdigit->1是数字
numeric->1是数字
isdigit->d不是数字
isdigit->d2不是数字
isdigit->⑯不是数字
numeric->⑯是数字
isdigit->⒃不是数字
numeric->⒃是数字
isdigit->⒗不是数字
numeric->⒗是数字
isdigit->Ⅴ不是数字
numeric->Ⅴ是数字
isdigit->Ⅳ不是数字
numeric->Ⅳ是数字
isdigit->❻是数字
numeric->❻是数字
isdigit->㈥不是数字
numeric->㈥是数字
isdigit->⅔不是数字
numeric->⅔是数字
isdigit->贰不是数字
numeric->贰是数字
isdigit->贰不是数字
numeric->贰是数字

看到这个结果,可以看到方法numeric()比isdigit()好用,判断范围更广,不管是阿拉伯数字还是中文数字或者其他数字的表现形式,numeric()方法都能识别出来,不得不说这块确实很强大,但是具体用哪个方法就要自己去判断了,毕竟不同的业务场景使用的规则不一样。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值