Python 字符串 isdecimal() 方法

Python isdecimal() 语法

isdecimal() 是 Python 字符串的一个方法,它用于判断字符串中所有字符是否为 “十进制字符”。

语法:

str.isdecimal()

说明:

isdecimal() 方法不接收任何参数。

isdecimal() 方法会返回一个布尔值,即 True 或 False。

注意:

  • 只有数字(0~9)才会被视为 “decimal”,然后使用 isdecimal() 会返回 True。
  • 其他数字形式如:上标(如 ²)、下标(如 ₂)、分数(如 ½)、罗马数字等,均不被视为十进制字符。

Python isdecimal() 摘要

使用频率
修改原字符串
官方文档 查看
相关方法 isdigit()isnumeric()

Python isdecimal() 示例

接下来,我们通过几个简单的例子来讲解 Python isdecimal() 方法是如何使用的。

示例 1:isdecimal() 基本用法

s1 = 'python2025'
s2 = '2077'
s3 = '3.1415'

print(s1.isdecimal())
print(s2.isdecimal())
print(s3.isdecimal())

运行结果如下。

False
True
False

分析:

s3 中包含了 “.”,而 “.” 不属于 “十进制字符”,因此 s3.isdecimal() 返回 False。

示例 2:包含上标、下标或分数

s1 = '8²'
s2 = '8₂'
s3 = '½'

print(s1.isdecimal())
print(s2.isdecimal())
print(s3.isdecimal())

运行结果如下。

False
False
False

示例 3:空字符串与特殊字符

s1 = ''
s2 = '666@888'

print(s1.isdecimal())
print(s2.isdecimal())

运行结果如下。

False
False

示例 4:包含特殊数字

s1 = '२३'      # 阿拉伯 - 印度数字
s2 = 'Ⅷ'      # 罗马数字
s3 = '六'      # 汉字数字

print(s1.isdecimal())
print(s2.isdecimal())
print(s3.isdecimal())

运行结果如下。

True
False
False

分析:

对于 isdecimal() 来说,“阿拉伯-印度数字” 会被视为有效数字字符,但 “罗马数字” 和 “汉字数字” 却不会被视为有效数字字符。

isdecimal()、isdigit() 与 isnumeric() 的区别

isdecimal()、isdigit()isnumeric() 这 3 个方法的功能很相似,它们之间的区别如下。

  • isdecimal():只有数字(0~9)才会被视为 “decimal”,然后使用 isdecimal() 会返回 True。
  • isdigit():只有数字(0~9)、上标、下标才会被视为 “digit”,然后使用 isdigit() 会返回 True。
  • isnumeric():数字(0~9)、上标、下标、罗马数字、分数、货币分子等一律会被视为 “numeric”,然后使用 isnumeric() 都会返回 True。

如果你只是想判断是否为 0~9 这 10 个数字,只需要使用 isdecimal() 即可。

示例 5:isdecimal() vs isdigit() vs isnumeric()

s = '²३½'
print(s.isdecimal())
print(s.isdigit())
print(s.isnumeric())

运行结果如下。

False
False
True

分析:

在上面例子中,“३” 是天城文(Devanagari)​ 数字中的 ​3,属于印度 - 阿拉伯数字系统的一部分。

上一篇: isalpha()

下一篇: isdigit()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号