Python 字符串 isdigit() 方法

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

上一篇: isdecimal()

下一篇: isnumeric()

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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