1. print( 坑的信息 )

  • 挖坑时间:2019/01/14

  • 明细

    坑的编码 内容
    Py009-2 Python3 中 isdecimal() 和 isdigit() 的区别

2. isdecimal() 官方文档

  • 截图:

  • 大致意思:

如果字符串中的所有字符都是十进制字符并且至少有一个字符,则返回 True,否则返回 False。

十进制字符是可以用来组成以 10 为基数的数字的字符,例如 U+0660:阿拉伯-印度数字零。

形式上,十进制字符是 Unicode 通用类别 ·nd· 中的字符。

  • U+0030:数字零; U+0660:阿拉伯-印度数字零
  • nd:数字,十进制

3. isdigit() 官方文档

  • 截图:

  • 大致意思:

如果字符串中的所有字符都是数字并且至少有一个字符,则返回 True,否则返回 False。

数字包括十进制字符和需要特殊处理的数字,如兼容性上标数字。

这包括不能用于以 10 为基数构成数字的数字,如 Kharosthi 数字。

从形式上讲,数字是一个具有属性值 numeric_type=digit 或 numeric_type=decimal 的字符。

  • kharosthi 编码在 unicode 范围 U+10a00 – U+10a5f

4. 举例

(1) 先说结论

isdecimal()

True:Unicode 数字,全角数字(双字节)

False:小数,罗马数字,汉字数字

Error:byte 数字(半角、单字节)

isdigit()

True:Unicode 数字,全角数字(双字节),byte 数字(半角、单字节)

False:小数,罗马数字,汉字数字

Error:无

  • 所以 isdecimal() 与 isdigit() 的区别就在 byte 数字上:

    • byte 数字在使用 isdecimal() 时报错
    • byte 数字在使用 isdigit() 时输出 True

(2) 示例

# 例1 isdecimal()

num1 = '6'				# unicode
num2 = '6' # 全角
num3 = '6.6' # 小数
num4 = 'Ⅵ' # 罗马数字 6
num5 = '六' # 简体汉字 小写数字
num6 = '陆' # 简体汉字 大写数字
num7 = b'6' # byte print(num1.isdecimal())
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())
print(num5.isdecimal())
print(num6.isdecimal())
print(num7.isdecimal())
  • 运行结果

True

True

False

False

False

False

AttributeError……'bytes' object has no attribute 'isdecimal'

最后一条代码报错:'bytes' 对象没有 'isdecimal' 属性。


# 例2 isdigit()

num1 = '6'				# unicode
num2 = '6' # 全角
num3 = '6.6' # 小数
num4 = 'Ⅵ' # 罗马数字 6
num5 = '六' # 简体汉字 小写数字
num6 = '陆' # 简体汉字 大写数字
num7 = b'6' # byte print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
print(num5.isdigit())
print(num6.isdigit())
print(num7.isdigit())
  • 运行结果

True

True

False

False

False

False

True


5. 补充 isnumeric()

(1) 官方文档

  • 截图:

  • 大致意思:

如果字符串中的所有字符都是数字字符,并且至少有一个字符,则返回 True,否则返回 False。

数字字符除了包括数字字符,还有具有 Unicode 数值属性的所有字符,例如 U+2155:VULGAR FRACTION ONE FIFTH。

从形式上讲,数字字符是具有属性值 numeric_type=digit、numeric_type=decimal 或 numeric_type=numeric 的字符。

VULGAR FRACTION ONE FIFTH,大概写 HTML 时有用,这里就不挖二重坑了。


(2) 先说结论

True:Unicode 数字,全角数字(双字节),罗马数字,汉字数字

False:小数

Error:byte 数字(半角、单字节)

  • isnumeric() 与 isdecimal() 的区别就在罗马数字和汉字数字上:

    • 罗马数字和汉字数字在使用 isnumeric() 时输出 True
    • 罗马数字和汉字数字在使用 isdecimal() 时输出 False

(3) 举例说明

# 例3 isnumeric()

num1 = '6'				# unicode
num2 = '6' # 全角
num3 = '6.6' # 小数
num4 = 'Ⅵ' # 罗马数字 6
num5 = '六' # 简体汉字 小写数字
num6 = '陆' # 简体汉字 大写数字
num7 = b'6' # byte print(num1.isnumeric())
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
print(num5.isnumeric())
print(num6.isnumeric())
print(num7.isnumeric())
  • 运行结果

True

True

False

True

True

True

AttributeError……'bytes' object has no attribute 'isnumeric'

最后一条代码报错:'bytes' 对象没有 'isnumeric' 属性。

[Python3 填坑] 002 isdecimal() 与 isdigit() 的区别 + isnumeric() 的补充的更多相关文章

  1. [Python3 填坑] 015 __str__ 与 __repr__ 的区别

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 上例子 2.2 关系与区别 Python 3.7.3 的官方文档 网上看到一个例子,运行了一下 简单地说 1. print( 坑的信息 ...

  2. [Python3 填坑] 006 “杠零”,空字符的使用

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 \0 是空字符,输出时看不到它,但它占 1 个字符的长度 2.2 \0 "遇八进制失效" 2.3 \0 与 '' 不 ...

  3. [Python3 填坑] 003 关键字?保留字?预留字?

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 网上搜索 2.3 结论 2.4 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/04 明细 坑的编 ...

  4. [Python3 填坑] 004 关于八进制

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 2.2.1 先说结论 2.2.2 八进制的用途 2.2.3 少废话,上例子 1. print( 坑的信息 ...

  5. [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python 格式化符号表 举例说明 (1) %c (2) %s 与 %d (3) %o (4) %x (5) %f (6) %e (7 ...

  6. [Python3 填坑] 012 字典的遍历在 Python2 与 Python3 中区别

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python2 中字典的遍历 2.2 Python3 中字典的遍历 2.3 结论 1. print( 坑的信息 ) 挖坑时间:2019/ ...

  7. [Python3 填坑] 009 深拷贝与浅拷贝

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python3.7 官方文档 2.2 赋值.切片与 copy() 分析 分析 分析 分析 2.3 copy 模块 分析 分析 2.4 小 ...

  8. [Python3 填坑] 005 如何“响铃”

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 1. print( 坑的信息 ) 挖坑时间:2019/01/08 明细 坑的编码 内容 Py004-2 ...

  9. [Python3 填坑] 018 组装类的几个例子

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 MetaClass 举例 2.2 type 举例 2.3 MetaClass 举例 1. print( 坑的信息 ) 挖坑时间:2019 ...

随机推荐

  1. SpringBoot集成redis + spring cache

    Spring Cache集成redis的运行原理: Spring缓存抽象模块通过CacheManager来创建.管理实际缓存组件,当SpringBoot应用程序引入spring-boot-starte ...

  2. 做股票软件用的各种k线图

    这是各种k线图地址: http://echarts.baidu.com/echarts2/doc/example.html 个人公众号谢谢各位老铁支持 本人qq群也有许多的技术文档,希望可以为你提供一 ...

  3. 作用域变量 var

    var没有块级作用域,定义后在当前闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改. 变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改: console. ...

  4. MySQL数据库3分组与单表、多表查询

    目录 一.表操作的补充 1.1null 和 not null 1.2使用not null的时候 二.单表的操作(import) 2.1分组 2.1.1聚合函数 2.1.2group by 2.1.3h ...

  5. 主席树(静态区间第k大)

    前言 如果要求一些数中的第k大值,怎么做? 可以先就这些数离散化,用线段树记录每个数字出现了多少次. ... 那么考虑用类似的方法来求静态区间第k大. 原理 假设现在要有一些数 我们可以对于每个数都建 ...

  6. postman—UI测试

    思路 发送请求去拿到网站的响应->html 解析HTML标签,判断一些元素是否显示 目的 快速检查UI是否正确 测试地址 http://www.itest.info/courses 我们接下来要 ...

  7. linux运维、架构之路-CentOS6.9安装Zabbix3.4.1

    一.LAMP环境安装 1.环境 [root@m01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@m01 ~]# uname ...

  8. Gparted for partition of Linux on graphic interface

    You can change the partition table on Linux by a group of tools, which is tool comprehansive for a n ...

  9. HDU 6287 Just h-index

    Time limit 3000 ms Memory limit 132768 kB OS Windows Source CCPC2018-湖南全国邀请赛-重现赛(感谢湘潭大学) 中文题意 一个序列,每 ...

  10. 【CF1247F】Tree Factory(构造)

    题意:给定一棵n个点的树,要求将一条可以随意标号的链通过若干次操作变成这棵树 一次操作是指若v不为根且v的父亲不为根,则将v以及v的子树移到v的父亲的父亲上 要求给出标号方案,操作次数以及方案 n&l ...