如何检查 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()
函数、使用正则表达式匹配以及使用异常处理的方式。需要根据自己的具体需求选择适合的方法。