[Python3 填坑] 002 isdecimal() 与 isdigit() 的区别 + isnumeric() 的补充

Posted YorkFish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python3 填坑] 002 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
>>> 

以上是关于[Python3 填坑] 002 isdecimal() 与 isdigit() 的区别 + isnumeric() 的补充的主要内容,如果未能解决你的问题,请参考以下文章

[Python3 填坑] 007 多才多艺的 len()

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

[Python3 练习] 002 温度转换2

002_Python3基础语法

002天-python3-基础知识-变量

????????????002 python3 +beautifulsoup4 +requests ??????????????????