如何检查 Python 字符串是否仅包含数字?

如何检查 Python 字符串是否仅包含数字?

有时候我们需要验证一个字符串是否只包含数字,这时候就可以使用 Python 自带的一些函数和模块来实现。

更多Python文章,请阅读:Python 教程

判断字符串是否为数字

首先,我们可以使用字符串自带的 isdigit() 函数来判断字符串是否为数字,该函数会返回一个布尔值,表示该字符串是否只包含数字:

s1 = '123456'
s2 = 'abcd123'
print(s1.isdigit()) # 输出 True
print(s2.isdigit()) # 输出 False

正则表达式匹配

另一种判断字符串是否为数字的方法是通过正则表达式进行匹配。正则表达式是一种类似于通配符的表达式语言,可以用来描述一些字符串的规则。

Python 中,我们可以使用内置的 re 模块来进行正则表达式的匹配。下面是一个使用正则表达式判断字符串是否为纯数字的示例代码:

import re

s1 = '123456'
s2 = 'abcd123'

if re.match('^[0-9]+', s1):
    print(s1 + ' 是纯数字')
else:
    print(s1 + ' 不是纯数字')

if re.match('^[0-9]+', s2):
    print(s2 + ' 是纯数字')
else:
    print(s2 + ' 不是纯数字')

在上面的代码中,我们使用了 re.match() 函数进行正则表达式匹配。其中,'^[0-9]+$' 表示以数字开头和结尾的字符串。如果匹配成功,则返回一个匹配对象,否则返回 None

需要注意的是,这种方法只能判断字符串是否为纯数字,不能判断是否为浮点数或者其他形式的数字。

异常处理

除了上述两种方法,我们还可以使用异常处理的方式来判断字符串是否为数字。该方法比较简单,只需要尝试将字符串转换为数字,如果能够成功转换,则说明该字符串为数字,否则就会抛出一个异常。

下面是一个使用异常处理判断字符串是否为数字的示例代码:

s1 = '123456'
s2 = 'abcd123'

try:
    int(s1)
    print(s1 + ' 是纯数字')
except ValueError:
    print(s1 + ' 不是纯数字')

try:
    int(s2)
    print(s2 + ' 是纯数字')
except ValueError:
    print(s2 + ' 不是纯数字')

在上面的代码中,我们使用了 int() 函数将字符串转换为整数。如果转换成功,则说明该字符串为数字。如果转换失败,则会抛出一个 ValueError 异常。我们使用了 try...except... 结构来捕获该异常。

需要注意的是,这种方法只能判断字符串是否为整数,不能判断是否为浮点数或者其他形式的数字。

结论

本文介绍了三种方法来判断 Python 字符串是否仅包含数字,包括使用字符串自带的 isdigit() 函数、使用正则表达式匹配以及使用异常处理的方式。需要根据自己的具体需求选择适合的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程