zoukankan      html  css  js  c++  java
  • 02 isdecimal(), isdigit(), isnumeric()

    isdecimal()

    • 官方文档截图

    • 简单地说:若字符串中所有字符都是十进制字符,则返回 True,否则返回 False

    isdigit()

    • 官方文档截图

    • 简单地说:若字符串中所有字符都是数字字符,则返回 True,否则返回 False

    • 所以,isdigit() 的范围大于 isdecimal()

    isnumeric()

    • 官方文档截图

    • 简单地说:若字符串中所有字符都是数字字符,则返回 True,否则返回 False

    • isdecimal(), isdigit() 有区别

    对比

    isdecimal()
    True:  Unicode 数字,全角数字(双字节)
    False: 小数,罗马数字,汉字数字
    Error: byte 数字(半角、单字节)
    
    isdigit()
    True:  Unicode 数字,全角数字(双字节),byte 数字(半角、单字节)
    False: 小数,罗马数字,汉字数字
    Error: 无
    
    isnumeric()
    True:  Unicode 数字,全角数字(双字节),罗马数字,汉字数字
    False: 小数
    Error: byte 数字(半角、单字节)
    
    • isdecimal()isdigit() 的区别就在 byte 数字上

      • byte 数字在使用 isdecimal() 时抛出异常
      • byte 数字在使用 isdigit() 时输出 True
    • isdecimal()isnumeric() 的区别就在罗马数字汉字数字

      • 罗马数字和汉字数字在使用 isdecimal() 时输出 False
      • 罗马数字和汉字数字在使用 isnumeric() 时输出 True
    • 另外,对“圈数字”而言

      • False: isdecimal()
      • True: isdigit(), isnumeric()

    举例

    例1

    num1 = '6'  # unicode
    num2 = '6'  # 全角
    num3 = '6.6'  # 小数
    num4 = 'Ⅵ'  # 罗马数字 6
    num5 = '六'  # 汉字数字
    num6 = b'6'  # byte / 半角
    
    print(num1.isdecimal())  # T unicode
    print(num2.isdecimal())  # T 全角
    print(num3.isdecimal())  # F 小数
    print(num4.isdecimal())  # F 罗马数字
    print(num5.isdecimal())  # F 汉字数字
    print(num6.isdecimal())  # AttributeError: 'bytes' object has no attribute 'isdecimal'
    
    print(num1.isdigit())  # T unicode
    print(num2.isdigit())  # T 全角
    print(num3.isdigit())  # F 小数
    print(num4.isdigit())  # F 罗马数字
    print(num5.isdigit())  # F 汉字数字
    print(num6.isdigit())  # T 半角
    
    print(num1.isnumeric())  # T unicode
    print(num2.isnumeric())  # T 全角
    print(num3.isnumeric())  # F 小数
    print(num4.isnumeric())  # T 罗马数字
    print(num5.isnumeric())  # T 汉字数字
    print(num6.isnumeric())  # AttributeError: 'bytes' object has no attribute 'isnumeric'
    

    例2

    >>> "②".isdecimal()
    False
    >>> "②".isdigit()
    True
    >>> "②".isnumeric()
    True
    >>> 
    
  • 相关阅读:
    Java学习第一课:搭建Eclipse+MyEclipse+Tomcat
    XFire 与 JAXWS的区别 GlassFish是Java EE 5的开源实现其中包括JAXWS
    在MyEclipse6.5上开发JAXWS web服务
    adobe acrobat professional8 .0 激活方法实施过程 记录
    MySQL MYSQL_ROW 返回的字段若是 float 如何在 C++程序中 把 字段值赋给 一个 float变量
    Arrays.sort 不区分大小写 排序
    Arrays.sort 不区分字母大小写 排序
    Applet与Servlet通讯的四种方法及其比较
    Arrays.sort 不区分大小写字母 Comparable
    利用 Arrays.sort 字符串 进行排序 完全按字符 排序 忽略字符大小写
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10270963.html
Copyright © 2011-2022 走看看