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,属于印度 - 阿拉伯数字系统的一部分。
