Python isdigit() 语法
isdigit() 是 Python 字符串的一个方法,它用于判断字符串中所有字符是否为 “数字”。
语法:
str.isdigit()说明:
isdigit() 方法不接收任何参数。
isdigit() 方法会返回一个布尔值,即 True 或 False。
注意:
- Python 中的 “上标” 和 “下标”(它们通常使用 unicode 表示)也会被视为 “digit”,此时使用 isdigit() 会返回 True。
- 罗马数字、货币分子、分数(它们通常使用 unicode 表示)会被视为 “numeric”,而不会视为 “digit” 。它们使用 isnumeric() 会返回 True,而使用 isdigit() 会返回 False。
Python isdigit() 摘要
| 使用频率 | 中 |
|---|---|
| 修改原字符串 | 否 |
| 官方文档 | 查看 |
| 相关方法 | isdecimal()、isnumeric() |
Python isdigit() 示例
接下来,我们通过几个简单的例子来讲解 Python isdigit() 方法是如何使用的。
示例 1:isdigit() 基本用法
s1 = 'python2024'
s2 = '2077'
s3 = '3.1415'
print(s1.isdigit())
print(s2.isdigit())
print(s3.isdigit())运行结果如下。
False
True
False分析:
s3 中包含了 “.”,而 “.” 不属于 “数字”,因此 s3.isdigit() 返回 False。
示例 2:包含上标、下标或分数
s1 = '8²'
s2 = '8₂'
s3 = '½'
print(s1.isdigit())
print(s2.isdigit())
print(s3.isdigit())运行结果如下。
True
True
False分析:
对于 isdigit() 来说,上标、下标及部分 Unicode 数字符号会被视为有效数字字符,但分数并不会被视为有效数字字符。
示例 3:包含特殊数字
s1 = '२३' # 阿拉伯 - 印度数字
s2 = 'Ⅷ' # 罗马数字
s3 = '六' # 汉字数字
print(s1.isdigit())
print(s2.isdigit())
print(s3.isdigit())运行结果如下。
True
False
False分析:
对于 isdigit() 来说,“阿拉伯-印度数字” 会被视为有效数字字符,但 “罗马数字” 和 “汉字数字” 却不会被视为有效数字字符。
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() 即可。
示例 4:isdecimal() vs isdigit() vs isnumeric()
s = '²३½'
print(s.isdecimal())
print(s.isdigit())
print(s.isnumeric())运行结果如下。
False
False
True分析:
在上面例子中,“३” 是天城文(Devanagari)数字中的 3,属于印度 - 阿拉伯数字系统的一部分。
