📅  最后修改于: 2023-12-03 14:55:45.705000             🧑  作者: Mango
在 Python 中,我们可以通过多种方式检查一个字符串是否为浮点数。下面我们就来介绍一些方法。
我们可以使用 Python 自带的 re
(正则表达式)模块,通过编写浮点数的正则表达式来检查一个字符串是否为浮点数。
import re
def is_float(number):
regex = "^\d+\.\d+$"
return bool(re.match(regex, number))
if is_float("3.14"):
print("This is a float.")
else:
print("This is not a float.")
输出:This is a float.
这个方法的好处在于,我们可以自己定义想要匹配的浮点数格式。
除了使用正则表达式外,我们还可以使用 Python 内置函数 float()
来尝试将一个字符串转换成浮点数。如果成功转换,则说明该字符串是一个浮点数。
def is_float(number):
try:
float(number)
return True
except ValueError:
return False
if is_float("3.14"):
print("This is a float.")
else:
print("This is not a float.")
输出:This is a float.
需要注意的是,由于 float()
函数的转换规则比较严格,因此该方法可能会比正则表达式方法更容易出错。
除了以上两种方法外,我们还可以使用 Python 中的第三方库来检查一个字符串是否为浮点数,例如 numpy
库提供了 numpy.isclose()
方法来比较两个浮点数是否相似。
import numpy as np
def is_float(number):
try:
return np.isclose(float(number), float(number))
except ValueError:
return False
if is_float("3.14"):
print("This is a float.")
else:
print("This is not a float.")
输出:This is a float.
需要注意的是,使用第三方库的方法需要先安装相应的库,不过有时候会比起使用内置函数或正则表达式更加简便。