📅  最后修改于: 2023-12-03 15:27:21.885000             🧑  作者: Mango
在编程过程中,有时需要判断一个字符串是否是十进制数,本文将介绍两种常用方法。
使用正则表达式判断是否为十进制数,具体实现如下:
import re
def is_decimal(x):
pattern = "^[0-9]+$"
return re.match(pattern, x) != None
这里使用了Python自带的re库,匹配数字开始到结束。
Python中提供了内置函数,可以快速判断一个字符串是否全为数字,具体实现如下:
def is_decimal(x):
return x.isdecimal()
isdecimal()函数返回True,当且仅当字符串中全是数字字符,否则返回False。
在Python3.6中,测试了两个方法的性能,其中用了timeit模块,每个方法执行1000次。
import timeit
def test_regex():
is_decimal("1234567890")
def test_builtin():
"1234567890".isdecimal()
print("regex:", timeit.timeit(test_regex, number=1000))
print("builtin:", timeit.timeit(test_builtin, number=1000))
运行结果:
regex: 0.01894399500098757
builtin: 0.0011521280001909925
可以看到,内置函数的性能比正则表达式更快。
判断一个字符串是否是十进制数,可以使用正则表达式或内置函数。内置函数的性能更好,建议使用内置函数进行判断。