Python中判断字符串是否为数字的三个方法isdecimal 、isdigit、isnumeric的差别

isdecimal 、isdigit、isnumeric这三个字符串方法都用于判断字符串是否为数字,为什么用三个方法呢?他们的差别是什么内?
isdecimal:是否为十进制数字符,包括Unicode数字、双字节全角数字,不包括罗马数字、汉字数字、小数;
isdigit:是否为数字字符,包括Unicode数字,单字节数字,双字节全角数字,不包括汉字数字,罗马数字、小数
isnumeric:是否所有字符均为数值字符,包括Unicode数字、双字节全角数字、罗马数字、汉字数字,不包括小数。

我们定义一个函数来进行验证:

def isnumber(s):
     print(s+' isdigit: ',s.isdigit())
     print(s+' isdecimal: ',s.isdecimal())
     print(s+' isnumeric: ',s.isnumeric())

执行函数isnumber('123'),三个都是True,执行函数isnumber('123.0'),三个都是False,执行函数isnumber('壹贰叁'),打印分别是False、False、True,罗马数字也是一样的结果。

>>> isnumber('123')
123 isdigit:  True
123 isdecimal:  True
123 isnumeric:  True
>>> isnumber('123.0')
123.0 isdigit:  False
123.0 isdecimal:  False
123.0 isnumeric:  False
>>> isnumber('壹贰叁')
壹贰叁 isdigit:  False
壹贰叁 isdecimal:  False
壹贰叁 isnumeric:  True

老猿Python,跟老猿学Python!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我来自山西太原,六期结缘百人百天,在8班,参加了第一个半马,第一个越野半马,曾经作为7期8班5组的一员热血沸腾...
    太原午夜阳光阅读 1,293评论 0 0
  • 一、年度运营核心规划 1、运营思路:天猫+整合流量渠道+会员营销+品牌营销+爆款打造; 2、产品定位、风格定位、拍...
    紫薯啊阅读 4,676评论 0 0
  • 討厭患得患失的感覺,可能這是許多人不敢去爭取的原因吧,許多人里,也包括我。 害怕失去,所以寧願從未得到過;...
    来素阅读 1,254评论 0 0
  • 每天清晨起来散步。每个步履匆匆的行人。在叫卖声中开始新一天的生活,这里充满了烟火气息。这里呆了整整三年,从未如这段...
    槿花滴露阅读 2,910评论 0 1