[Python3 填坑] 002 isdecimal() 与 isdigit() 的区别 + isnumeric() 的补充
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() 的补充的更多相关文章
- [Python3 填坑] 015 __str__ 与 __repr__ 的区别
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 上例子 2.2 关系与区别 Python 3.7.3 的官方文档 网上看到一个例子,运行了一下 简单地说 1. print( 坑的信息 ...
- [Python3 填坑] 006 “杠零”,空字符的使用
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 \0 是空字符,输出时看不到它,但它占 1 个字符的长度 2.2 \0 "遇八进制失效" 2.3 \0 与 '' 不 ...
- [Python3 填坑] 003 关键字?保留字?预留字?
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 网上搜索 2.3 结论 2.4 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/04 明细 坑的编 ...
- [Python3 填坑] 004 关于八进制
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 2.2.1 先说结论 2.2.2 八进制的用途 2.2.3 少废话,上例子 1. print( 坑的信息 ...
- [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python 格式化符号表 举例说明 (1) %c (2) %s 与 %d (3) %o (4) %x (5) %f (6) %e (7 ...
- [Python3 填坑] 012 字典的遍历在 Python2 与 Python3 中区别
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python2 中字典的遍历 2.2 Python3 中字典的遍历 2.3 结论 1. print( 坑的信息 ) 挖坑时间:2019/ ...
- [Python3 填坑] 009 深拷贝与浅拷贝
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python3.7 官方文档 2.2 赋值.切片与 copy() 分析 分析 分析 分析 2.3 copy 模块 分析 分析 2.4 小 ...
- [Python3 填坑] 005 如何“响铃”
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 1. print( 坑的信息 ) 挖坑时间:2019/01/08 明细 坑的编码 内容 Py004-2 ...
- [Python3 填坑] 018 组装类的几个例子
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 MetaClass 举例 2.2 type 举例 2.3 MetaClass 举例 1. print( 坑的信息 ) 挖坑时间:2019 ...
随机推荐
- 代理层Nginx限流(降级)预案
典型服务架构介绍 预案适用场景 监控指标 操作手册 相关文档 操作方法 配置语法 配置样例 配置解释 注意事项 典型服务架构介绍 典型的互联网服务访问链路都是分层结构的,从流量入口,到应用层,到后端资 ...
- Educational Codeforces Round 55 (Rated for Div. 2) D. Maximum Diameter Graph (构造图)
D. Maximum Diameter Graph time limit per test2 seconds memory limit per test256 megabytes inputstand ...
- flask框架上下文
上下文 上下文:相当于一个容器,保存了 Flask 程序运行过程中的一些信息. Flask中有两种上下文,请求上下文和应用上下文 请求上下文(request context) 在 flask 中,可以 ...
- 如何提高SMTP邮件的安全性?从而不被黑客窃听
简单邮件传输协议(SMTP)用于在邮件服务器之间进行邮件传输,并且传统上是不安全的,因此容易被黑客窃听.命名实体的基于DNS的认证(国家统计局)用于SMTP提供了邮件传输更安全的方法,并逐渐变得越来越 ...
- 使用Spring.Net进行Webservice开发&发布遇到的问题
发布遇到的问题1: HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理. 最终解决时IIS的设置情况: 1.应用程序池的高级设置中 启用32 ...
- linux运维、架构之路-Kickstart无人值守
一.PXE介绍 PXE全名Pre-boot Execution Environment,预启动执行环境:通过网络接口启动计算机,不依赖本地存储设备或本地已安装的操作系统:Client ...
- ExtJS用Grid显示数据后如何自动选取第一条记录
用Grid显示数据后,如何让系统自动选取第一条记录呢?在显示Grid时由于其Store正在loading,没法在Grid选取第一条记录,因为还没有记录,所以应在其Store进行操作. 查看Ext.da ...
- BM板子
BM线性递推 玄学玩意 struct LinearRecurrence { using int64 = long long; using vec = std::vector<int64>; ...
- UVALive 6862 Triples (找规律 暴力)
Triples 题目链接: http://acm.hust.edu.cn/vjudge/contest/130303#problem/H Description http://7xjob4.com1. ...
- HTTP入门(二):用Chrome开发者工具查看 HTTP 请求与响应
HTTP入门(二):用Chrome开发者工具查看 HTTP 请求与响应 本文简单总结HTTP的请求与响应. 本文主要目的是对学习内容进行总结以及方便日后查阅. 详细教程和原理可以参考HTTP文档(MD ...