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
    >>> 
    
  • 相关阅读:
    Comparable与Comparator
    【源码】String类、jdk1.6subString内存泄漏、字符串拼接几种区别、
    JAVA整型包装类的缓存策略
    通过tomcat把项目http请求转为https请求
    git rebase总结及git使用规范
    记一次对象序列化不打印value值为null的属性问题
    Layui-Tables+PHP分页
    Python操作字符串-截取IP地址
    命令行启动VMware虚拟机
    bat批处理备份桌面所有文档
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10270963.html
Copyright © 2011-2022 走看看